From: Jean-Baptiste Mardelle Date: Mon, 11 Feb 2013 16:54:42 +0000 (+0100) Subject: Fix crash when opening invalid file from command line: http://kdenlive.org/mantis... X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0da95d724966048ade94f10a865260b5216ad2e4;p=kdenlive Fix crash when opening invalid file from command line: http://kdenlive.org/mantis/view.php?id=2984 --- diff --git a/src/archivewidget.cpp b/src/archivewidget.cpp index 19f28437..569d336a 100644 --- a/src/archivewidget.cpp +++ b/src/archivewidget.cpp @@ -285,6 +285,7 @@ void ArchiveWidget::openArchiveForExtraction() if (!isProjectArchive) { emit showMessage("dialog-close", i18n("File %1\n is not an archived Kdenlive project", m_extractUrl.path())); groupBox->setEnabled(false); + buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); return; } buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cc8908ee..3ff94d36 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2111,13 +2111,23 @@ void MainWindow::openFile(const KUrl &url) // Opening a compressed project file, we need to process it kDebug()<<"Opening archive, processing"; QPointer ar = new ArchiveWidget(url); - if (ar->exec() == QDialog::Accepted) openFile(KUrl(ar->extractedProjectFile())); + if (ar->exec() == QDialog::Accepted) { + openFile(KUrl(ar->extractedProjectFile())); + } + else if (!m_startUrl.isEmpty()) { + // we tried to open an invalid file from command line, init new project + newFile(false); + } delete ar; return; } if (!url.fileName().endsWith(".kdenlive")) { // This is not a Kdenlive project file, abort loading KMessageBox::sorry(this, i18n("File %1 is not a Kdenlive project file", url.path())); + if (!m_startUrl.isEmpty()) { + // we tried to open an invalid file from command line, init new project + newFile(false); + } return; }