From: Jean-Baptiste Mardelle Date: Wed, 19 Dec 2012 12:15:51 +0000 (+0100) Subject: Fix dvd creation broken when no menu: http://kdenlive.org/mantis/view.php?id=2881 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=fd4a0aa096771b11d0bbabf625c417750d43f436;p=kdenlive Fix dvd creation broken when no menu: http://kdenlive.org/mantis/view.php?id=2881 --- diff --git a/src/dvdwizard.cpp b/src/dvdwizard.cpp index 4456be41..47dba015 100644 --- a/src/dvdwizard.cpp +++ b/src/dvdwizard.cpp @@ -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(""); @@ -269,6 +268,7 @@ void DvdWizard::generateDvd() //kDebug()<<"// STARTING MENU JOB, image: "<setIcon(KIcon("dialog-ok")); kDebug() << "/// DONE: " << menuMovieUrl; + processDvdauthor(menuMovieUrl, buttons, buttonsTarget); +} +void DvdWizard::processDvdauthor(QString menuMovieUrl, QMap 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 diff --git a/src/dvdwizard.h b/src/dvdwizard.h index fb957968..2a44a441 100644 --- a/src/dvdwizard.h +++ b/src/dvdwizard.h @@ -73,6 +73,7 @@ private: QMenu *m_burnMenu; void errorMessage(const QString &text); void infoMessage(const QString &text); + void processDvdauthor(QString menuMovieUrl = QString(), QMap buttons = QMap (), QStringList buttonsTarget = QStringList()); private slots: void slotPageChanged(int page); diff --git a/src/dvdwizardvob.cpp b/src/dvdwizardvob.cpp index 24921e41..cce398d5 100644 --- a/src/dvdwizardvob.cpp +++ b/src/dvdwizardvob.cpp @@ -91,12 +91,12 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) : m_vobList->setIconSize(QSize(60, 45)); - if (KStandardDirs::findExe("dvdauthor").isEmpty()) m_errorMessage.append(i18n("Program %1 is required for the DVD wizard.", i18n("dvdauthor"))); - if (KStandardDirs::findExe("mkisofs").isEmpty() && KStandardDirs::findExe("genisoimage").isEmpty()) m_errorMessage.append(i18n("Program %1 or %2 is required for the DVD wizard.", 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("Program %1 is required for the DVD wizard.", i18n("dvdauthor"))); + if (KStandardDirs::findExe("mkisofs").isEmpty() && KStandardDirs::findExe("genisoimage").isEmpty()) errorMessage.append(i18n("Program %1 or %2 is required for the DVD wizard.", 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 (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(); diff --git a/src/dvdwizardvob.h b/src/dvdwizardvob.h index a33b562c..d45847b9 100644 --- a/src/dvdwizardvob.h +++ b/src/dvdwizardvob.h @@ -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;