]> git.sesse.net Git - kdenlive/blobdiff - src/dvdwizard.cpp
Fix playing rendered file by double click in job queue list
[kdenlive] / src / dvdwizard.cpp
index 377547b1abbe9fef143ea0f261b8728856baa9f2..840a74cac19f204ea377873a2415a9025c4794af 100644 (file)
@@ -66,6 +66,7 @@ DvdWizard::DvdWizard(const QString &url, const QString &profile, QWidget *parent
     page4->setTitle(i18n("Creating DVD Image"));
     m_status.setupUi(page4);
     m_status.error_box->setHidden(true);
+    m_status.error_box->setTabBarHidden(true);
     m_status.tmp_folder->setUrl(KUrl(KdenliveSettings::currenttmpfolder()));
     m_status.tmp_folder->setMode(KFile::Directory | KFile::ExistingOnly);
     m_status.iso_image->setUrl(KUrl(QDir::homePath() + "/untitled.iso"));
@@ -153,6 +154,10 @@ void DvdWizard::slotPageChanged(int page)
 void DvdWizard::generateDvd()
 {
     m_status.error_box->setHidden(true);
+    m_status.error_box->setCurrentIndex(0);
+    m_status.error_box->setTabBarHidden(true);
+    m_status.menu_file->clear();
+    m_status.dvd_file->clear();
     KTemporaryFile temp1;
     temp1.setSuffix(".png");
     //temp1.setAutoRemove(false);
@@ -330,6 +335,9 @@ void DvdWizard::generateDvd()
                 spuitem->setIcon(KIcon("dialog-close"));
                 m_status.error_log->append(result);
                 m_status.error_box->setHidden(false);
+                m_status.error_box->setTabBarHidden(false);
+                m_status.menu_file->setPlainText(m_menuFile.readAll());
+                m_status.dvd_file->setPlainText(m_authorFile.readAll());
                 m_status.button_start->setEnabled(true);
                 kDebug() << "/// RENDERING SPUMUX MENU crashed";
                 return;
@@ -340,6 +348,9 @@ void DvdWizard::generateDvd()
             m_status.error_log->append("<a name=\"result\" /><br /><strong>" + i18n("Menu job timed out"));
             m_status.error_log->scrollToAnchor("result");
             m_status.error_box->setHidden(false);
+            m_status.error_box->setTabBarHidden(false);
+            m_status.menu_file->setPlainText(m_menuFile.readAll());
+            m_status.dvd_file->setPlainText(m_authorFile.readAll());
             m_status.button_start->setEnabled(true);
             return;
         }
@@ -445,7 +456,7 @@ void DvdWizard::generateDvd()
                 QDomText call;
                 if (i == voburls.count() - 1) call = dvddoc.createTextNode("{g1 = 0; call menu;}");
                 else {
-                    call = dvddoc.createTextNode("{if ( g1 eq 999 ) { call menu; } jump title " + QString::number(i + 2) + ";}");
+                    call = dvddoc.createTextNode("{if ( g1 eq 999 ) { call menu; } jump title " + QString::number(i + 2).rightJustified(2, '0') + ";}");
                 }
                 post.appendChild(call);
                 pgc2.appendChild(post);
@@ -474,6 +485,16 @@ void DvdWizard::generateDvd()
     }
     m_creationLog.clear();
     m_dvdauthor = new QProcess(this);
+    // Set VIDEO_FORMAT variable (required by dvdauthor 0.7)
+#if QT_VERSION >= 0x040600
+    QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+    env.insert("VIDEO_FORMAT", m_pageVob->isPal() ? "PAL" : "NTSC"); 
+    m_dvdauthor->setProcessEnvironment(env);
+#else
+    QStringList env = QProcess::systemEnvironment();
+    env << QString("VIDEO_FORMAT=") + QString(m_pageVob->isPal() ? "PAL" : "NTSC");
+    m_dvdauthor->setEnvironment(env);
+#endif
     connect(m_dvdauthor, SIGNAL(finished(int , QProcess::ExitStatus)), this, SLOT(slotRenderFinished(int, QProcess::ExitStatus)));
     connect(m_dvdauthor, SIGNAL(readyReadStandardOutput()), this, SLOT(slotShowRenderInfo()));
     m_dvdauthor->setProcessChannelMode(QProcess::MergedChannels);
@@ -495,10 +516,13 @@ void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
     if (status == QProcess::CrashExit || exitCode != 0) {
         QString result(m_dvdauthor->readAllStandardError());
         result.append("<a name=\"result\" /><br /><strong>");
-        result.append(i18n("DVDAuthor process crashed."));
+        result.append(i18n("DVDAuthor process crashed.</strong><br />"));
         m_status.error_log->append(result);
         m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
+        m_status.error_box->setTabBarHidden(false);
+        m_status.menu_file->setPlainText(m_menuFile.readAll());
+        m_status.dvd_file->setPlainText(m_authorFile.readAll());
         kDebug() << "DVDAuthor process crashed";
         authitem->setIcon(KIcon("dialog-close"));
         m_dvdauthor->close();
@@ -520,6 +544,9 @@ void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
         m_status.error_log->append(m_creationLog + "<a name=\"result\" /><br /><strong>" + i18n("DVD structure broken"));
         m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
+        m_status.error_box->setTabBarHidden(false);
+        m_status.menu_file->setPlainText(m_menuFile.readAll());
+        m_status.dvd_file->setPlainText(m_authorFile.readAll());
         kDebug() << "DVDAuthor process crashed";
         authitem->setIcon(KIcon("dialog-close"));
         m_status.button_start->setEnabled(true);
@@ -569,6 +596,9 @@ void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
         m_status.error_log->append(result);
         m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
+        m_status.error_box->setTabBarHidden(false);
+        m_status.menu_file->setPlainText(m_menuFile.readAll());
+        m_status.dvd_file->setPlainText(m_authorFile.readAll());
         m_mkiso->close();
         delete m_mkiso;
         m_mkiso = NULL;
@@ -595,6 +625,9 @@ void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
         m_status.error_log->append(m_creationLog + "<br /><a name=\"result\" /><strong>" + i18n("DVD ISO is broken") + "</strong>");
         m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
+        m_status.error_box->setTabBarHidden(false);
+        m_status.menu_file->setPlainText(m_menuFile.readAll());
+        m_status.dvd_file->setPlainText(m_authorFile.readAll());
         isoitem->setIcon(KIcon("dialog-close"));
         cleanup();
         return;
@@ -648,7 +681,7 @@ void DvdWizard::slotGenerate()
         m_status.job_progress->item(i)->setIcon(KIcon());
     QString warnMessage;
     if (KIO::NetAccess::exists(KUrl(m_status.tmp_folder->url().path(KUrl::AddTrailingSlash) + "DVD"), KIO::NetAccess::SourceSide, this))
-        warnMessage.append(i18n("Folder %1 already exists. Overwrite?" + '\n', m_status.tmp_folder->url().path(KUrl::AddTrailingSlash) + "DVD"));
+        warnMessage.append(i18n("Folder %1 already exists. Overwrite?\n", m_status.tmp_folder->url().path(KUrl::AddTrailingSlash) + "DVD"));
     if (KIO::NetAccess::exists(KUrl(m_status.iso_image->url().path()), KIO::NetAccess::SourceSide, this))
         warnMessage.append(i18n("Image file %1 already exists. Overwrite?", m_status.iso_image->url().path()));