]> git.sesse.net Git - kdenlive/commitdiff
Fix crash when opening invalid file from command line: http://kdenlive.org/mantis...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 11 Feb 2013 16:54:42 +0000 (17:54 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 11 Feb 2013 16:54:42 +0000 (17:54 +0100)
src/archivewidget.cpp
src/mainwindow.cpp

index 19f28437288d30a6a2a8702dd22352ce605b807f..569d336ac7dd6a02dc33d1e93ef89c45db291252 100644 (file)
@@ -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);
index cc8908ee2b9b25df5e22532242ebfb91d19041d2..3ff94d36b0ea53e738910ea7fdc2a3aac89ea5a9 100644 (file)
@@ -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<ArchiveWidget> 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;
     }