]> git.sesse.net Git - kdenlive/commitdiff
Fix dvd creation broken when no menu: http://kdenlive.org/mantis/view.php?id=2881
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 19 Dec 2012 12:15:51 +0000 (13:15 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 19 Dec 2012 12:15:51 +0000 (13:15 +0100)
src/dvdwizard.cpp
src/dvdwizard.h
src/dvdwizardvob.cpp
src/dvdwizardvob.h

index 4456be41bd2214f68e3a9e4e1f787d86970ddef5..47dba0155a7bf13c2ce85d1cf1f64da8ae4170ae 100644 (file)
@@ -219,7 +219,6 @@ void DvdWizard::generateDvd()
     QListWidgetItem *images =  m_status.job_progress->item(0);
     m_status.job_progress->setCurrentRow(0);
     images->setIcon(KIcon("system-run"));
-    qApp->processEvents();
     m_status.error_log->clear();
     // initialize html content
     m_status.error_log->setText("<html></html>");
@@ -269,6 +268,7 @@ void DvdWizard::generateDvd()
            //kDebug()<<"// STARTING MENU JOB, image: "<<m_menuImageBackground.fileName()<<"\n-------------";
        }
     }
+    else processDvdauthor();
 }
 
 void DvdWizard::processSpumux()
@@ -463,7 +463,11 @@ void DvdWizard::processSpumux()
 
     spuitem->setIcon(KIcon("dialog-ok"));
     kDebug() << "/// DONE: " << menuMovieUrl;
+    processDvdauthor(menuMovieUrl, buttons, buttonsTarget);
+}
 
+void DvdWizard::processDvdauthor(QString menuMovieUrl, QMap <QString, QRect> buttons, QStringList buttonsTarget)
+{
     // create dvdauthor xml
     QListWidgetItem *authitem =  m_status.job_progress->item(3);
     m_status.job_progress->setCurrentRow(3);
@@ -604,7 +608,7 @@ void DvdWizard::processSpumux()
     kDebug() << dvddoc.toString();
     kDebug() << "------------------";*/
 
-    args.clear();
+    QStringList args;
     args << "-x" << m_authorFile.fileName();
     kDebug() << "// DVDAUTH ARGS: " << args;
     if (m_dvdauthor) {
@@ -617,7 +621,7 @@ void DvdWizard::processSpumux()
     m_dvdauthor = new QProcess(this);
     // Set VIDEO_FORMAT variable (required by dvdauthor 0.7)
 #if QT_VERSION >= 0x040600
-    env = QProcessEnvironment::systemEnvironment();
+    QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
     env.insert("VIDEO_FORMAT", m_pageVob->dvdFormat() == PAL || m_pageVob->dvdFormat() == PAL_WIDE ? "PAL" : "NTSC"); 
     m_dvdauthor->setProcessEnvironment(env);
 #else
index fb957968aea1d64c9ee007f08460fbde1ab7aa94..2a44a441041abe621543952ef82bbe4b8f3232ac 100644 (file)
@@ -73,6 +73,7 @@ private:
     QMenu *m_burnMenu;
     void errorMessage(const QString &text);
     void infoMessage(const QString &text);
+    void processDvdauthor(QString menuMovieUrl = QString(), QMap <QString, QRect> buttons = QMap <QString, QRect>(), QStringList buttonsTarget = QStringList());
 
 private slots:
     void slotPageChanged(int page);
index 24921e4116ec89c035526b8d94ce1504d6fb74c5..cce398d5f92128256b1d1f30b46853668d93c4dd 100644 (file)
@@ -91,12 +91,12 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) :
     
     m_vobList->setIconSize(QSize(60, 45));
 
-    if (KStandardDirs::findExe("dvdauthor").isEmpty()) m_errorMessage.append(i18n("<strong>Program %1 is required for the DVD wizard.</strong>", i18n("dvdauthor")));
-    if (KStandardDirs::findExe("mkisofs").isEmpty() && KStandardDirs::findExe("genisoimage").isEmpty()) m_errorMessage.append(i18n("<strong>Program %1 or %2 is required for the DVD wizard.</strong>", i18n("mkisofs"), i18n("genisoimage")));
-    if (m_errorMessage.isEmpty()) m_view.error_message->setVisible(false);
-    else {
-       m_view.error_message->setText(m_errorMessage);
-       m_installCheck = false;
+    QString errorMessage;
+    if (KStandardDirs::findExe("dvdauthor").isEmpty()) errorMessage.append(i18n("<strong>Program %1 is required for the DVD wizard.</strong>", i18n("dvdauthor")));
+    if (KStandardDirs::findExe("mkisofs").isEmpty() && KStandardDirs::findExe("genisoimage").isEmpty()) errorMessage.append(i18n("<strong>Program %1 or %2 is required for the DVD wizard.</strong>", i18n("mkisofs"), i18n("genisoimage")));
+    if (!errorMessage.isEmpty()) {
+       m_view.button_add->setEnabled(false);
+       m_view.dvd_profile->setEnabled(false);
     }
 
     m_view.dvd_profile->addItems(QStringList() << i18n("PAL 4:3") << i18n("PAL 16:9") << i18n("NTSC 4:3") << i18n("NTSC 16:9"));
@@ -118,17 +118,27 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) :
 
 #if KDE_IS_VERSION(4,7,0)
     m_warnMessage = new KMessageWidget;
-    m_warnMessage->setMessageType(KMessageWidget::Warning);
-    m_warnMessage->setText(i18n("Your clips do not match selected DVD format, transcoding required."));
     m_warnMessage->setCloseButtonVisible(false);
-    m_warnMessage->addAction(m_transcodeAction);
     QGridLayout *s =  static_cast <QGridLayout*> (layout());
     s->addWidget(m_warnMessage, 2, 0, 1, -1);
-    m_warnMessage->hide();
+    if (!errorMessage.isEmpty()) {
+       m_warnMessage->setMessageType(KMessageWidget::Error);
+       m_warnMessage->setText(errorMessage);
+       m_installCheck = false;
+    }else {
+       m_warnMessage->setMessageType(KMessageWidget::Warning);
+       m_warnMessage->setText(i18n("Your clips do not match selected DVD format, transcoding required."));
+       m_warnMessage->addAction(m_transcodeAction);
+       m_warnMessage->hide();
+    }
     m_view.button_transcode->setHidden(true);
 #else
     m_view.button_transcode->setDefaultAction(m_transcodeAction);
     m_view.button_transcode->setEnabled(false);
+    if (!errorMessage.isEmpty()) {
+       m_view.error_message->setText(errorMessage);
+       m_installCheck = false;
+    }
 #endif
     
     slotCheckVobList();
index a33b562c65a5c2de2098023dd184c4a59c29a385..d45847b98cddaa876c706022c289954912316152 100644 (file)
@@ -122,7 +122,6 @@ public:
 private:
     Ui::DvdWizardVob_UI m_view;
     DvdTreeWidget *m_vobList;
-    QString m_errorMessage;
     KCapacityBar *m_capacityBar;
     QAction *m_transcodeAction;
     bool m_installCheck;