]> git.sesse.net Git - kdenlive/blobdiff - src/dvdwizard.cpp
Missing commit for title clip duration + fix background for title clips
[kdenlive] / src / dvdwizard.cpp
index 396eb02b305cebec356bbbdc738b53b1a35d594b..7ecbc93a0bb30436b6512312bf0481ccdc378a31 100644 (file)
@@ -44,6 +44,7 @@ DvdWizard::DvdWizard(const QString &url, const QString &profile, QWidget *parent
         m_mkiso(NULL),
         m_burnMenu(new QMenu(this))
 {
+    setWindowTitle(i18n("DVD Wizard"));
     //setPixmap(QWizard::WatermarkPixmap, QPixmap(KStandardDirs::locate("appdata", "banner.png")));
     setAttribute(Qt::WA_DeleteOnClose);
     m_pageVob = new DvdWizardVob(profile, this);
@@ -66,9 +67,11 @@ 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.tmp_folder->setPath(KdenliveSettings::currenttmpfolder());
-    m_status.iso_image->setPath(QDir::homePath() + "/untitled.iso");
+    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"));
     m_status.iso_image->setFilter("*.iso");
+    m_status.iso_image->setMode(KFile::File);
     m_status.iso_image->fileDialog()->setOperationMode(KFileDialog::Saving);
 
     addPage(page4);
@@ -100,9 +103,8 @@ DvdWizard::DvdWizard(const QString &url, const QString &profile, QWidget *parent
     m_status.button_burn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
     m_status.button_preview->setIcon(KIcon("media-playback-start"));
 
-    // TODO: uncomment after 0.7.4 release (i18n change)
-    /*setButtonText(QWizard::CustomButton1, i19n("Load"));
-    setButtonText(QWizard::CustomButton2, i19n("Save"));*/
+    setButtonText(QWizard::CustomButton1, i18n("Load"));
+    setButtonText(QWizard::CustomButton2, i18n("Save"));
     button(QWizard::CustomButton1)->setIcon(KIcon("document-open"));
     button(QWizard::CustomButton2)->setIcon(KIcon("document-save"));
     connect(button(QWizard::CustomButton1), SIGNAL(clicked()), this, SLOT(slotLoad()));
@@ -193,6 +195,9 @@ void DvdWizard::generateDvd()
     qApp->processEvents();
     QMap <QString, QRect> buttons = m_pageMenu->buttonsInfo();
     QStringList buttonsTarget;
+    m_status.error_log->clear();
+    // initialize html content
+    m_status.error_log->setText("<html></html>");
 
     if (m_pageMenu->createMenu()) {
         m_pageMenu->createButtonImages(temp1.fileName(), temp2.fileName(), temp3.fileName());
@@ -230,14 +235,15 @@ void DvdWizard::generateDvd()
                     kDebug() << "/// RENDERING MENU vob crashed";
                     QByteArray result = renderbg.readAllStandardError();
                     vobitem->setIcon(KIcon("dialog-close"));
-                    m_status.error_log->setText(result);
+                    m_status.error_log->append(result);
                     m_status.error_box->setHidden(false);
                     return;
                 }
             } else {
                 kDebug() << "/// RENDERING MENU vob timed out";
                 vobitem->setIcon(KIcon("dialog-close"));
-                m_status.error_log->setText(i18n("Rendering job timed out"));
+                m_status.error_log->append("<a name=\"result\" /><br><strong>" + i18n("Rendering job timed out"));
+                m_status.error_log->scrollToAnchor("result");
                 m_status.error_box->setHidden(false);
                 return;
             }
@@ -307,13 +313,12 @@ void DvdWizard::generateDvd()
         else spumux.setStandardInputFile(temp5.fileName());
         spumux.setStandardOutputFile(m_menuFile.fileName());
         spumux.start("spumux", args);
-        spumux.setProcessChannelMode(QProcess::MergedChannels);
         if (spumux.waitForFinished()) {
-            kDebug() << QString(spumux.readAll()).simplified();
+            m_status.error_log->append(spumux.readAllStandardError());
             if (spumux.exitStatus() == QProcess::CrashExit) {
                 QByteArray result = spumux.readAllStandardError();
                 spuitem->setIcon(KIcon("dialog-close"));
-                m_status.error_log->setText(result);
+                m_status.error_log->append(result);
                 m_status.error_box->setHidden(false);
                 kDebug() << "/// RENDERING SPUMUX MENU crashed";
                 return;
@@ -321,7 +326,8 @@ void DvdWizard::generateDvd()
         } else {
             kDebug() << "/// RENDERING SPUMUX MENU timed out";
             spuitem->setIcon(KIcon("dialog-close"));
-            m_status.error_log->setText(i18n("Menu job timed out"));
+            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);
             return;
         }
@@ -459,7 +465,7 @@ void DvdWizard::generateDvd()
 void DvdWizard::slotShowRenderInfo()
 {
     QString log = QString(m_dvdauthor->readAll());
-    m_status.error_log->setText(log);
+    m_status.error_log->append(log);
     m_status.error_box->setHidden(false);
 }
 
@@ -468,11 +474,10 @@ void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
     QListWidgetItem *authitem =  m_status.job_progress->item(3);
     if (status == QProcess::CrashExit || exitCode != 0) {
         QString result(m_dvdauthor->readAllStandardError());
-        result.append("<br><b>");
-
-        //TODO: uncomment after 0.7.4 release (i18n change)
-        //result.append(i19n("DVDAuthor process crashed."));
-        m_status.error_log->setText(result);
+        result.append("<a name=\"result\" /><br><strong>");
+        result.append(i18n("DVDAuthor process crashed."));
+        m_status.error_log->append(result);
+        m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
         kDebug() << "DVDAuthor process crashed";
         authitem->setIcon(KIcon("dialog-close"));
@@ -492,7 +497,8 @@ void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
 
     // Check if DVD structure has the necessary infos
     if (!QFile::exists(m_status.tmp_folder->url().path() + "/DVD/VIDEO_TS/VIDEO_TS.IFO")) {
-        m_status.error_log->setText(m_creationLog + '\n' + i18n("DVD structure broken"));
+        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);
         kDebug() << "DVDAuthor process crashed";
         authitem->setIcon(KIcon("dialog-close"));
@@ -526,7 +532,7 @@ void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
 void DvdWizard::slotShowIsoInfo()
 {
     QString log = QString(m_mkiso->readAll());
-    m_status.error_log->setText(log);
+    m_status.error_log->append(log);
     m_status.error_box->setHidden(false);
 }
 
@@ -536,10 +542,10 @@ void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
     QListWidgetItem *isoitem =  m_status.job_progress->item(4);
     if (status == QProcess::CrashExit || exitCode != 0) {
         QString result(m_mkiso->readAllStandardError());
-        result.append("<br><b>");
-        //TODO: uncomment after 0.7.4 release (i18n change)
-        // result.append(i19n("ISO creation process crashed."));
-        m_status.error_log->setText(result);
+        result.append("<a name=\"result\" /><br /><strong>");
+        result.append(i18n("ISO creation process crashed."));
+        m_status.error_log->append(result);
+        m_status.error_log->scrollToAnchor("result");
         m_status.error_box->setHidden(false);
         m_mkiso->close();
         delete m_mkiso;
@@ -564,7 +570,8 @@ void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
         if (iso.exists()) {
             KIO::NetAccess::del(m_status.iso_image->url(), this);
         }
-        m_status.error_log->setText(m_creationLog + '\n' + i18n("DVD ISO is broken"));
+        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);
         isoitem->setIcon(KIcon("dialog-close"));
         cleanup();
@@ -576,7 +583,8 @@ void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
     cleanup();
     kDebug() << m_creationLog;
 
-    m_status.error_log->setText(i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()));
+    m_status.error_log->append("<a name=\"result\" /><strong>" + i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()) + "</strong>");
+    m_status.error_log->scrollToAnchor("result");
     m_status.button_preview->setEnabled(true);
     m_status.button_burn->setEnabled(true);
     m_status.error_box->setHidden(false);
@@ -656,8 +664,8 @@ void DvdWizard::slotSave()
     if (m_pageVob->isWide()) profile.append("_wide");
     dvdproject.setAttribute("profile", profile);
 
-    dvdproject.setAttribute("tmp_folder", m_status.tmp_folder->text());
-    dvdproject.setAttribute("iso_image", m_status.iso_image->text());
+    dvdproject.setAttribute("tmp_folder", m_status.tmp_folder->url().path());
+    dvdproject.setAttribute("iso_image", m_status.iso_image->url().path());
 
     dvdproject.setAttribute("intro_movie", m_pageVob->introMovie());
 
@@ -699,8 +707,8 @@ void DvdWizard::slotLoad()
     QString profile = dvdproject.attribute("profile");
     m_pageVob->setProfile(profile);
 
-    m_status.tmp_folder->setPath(dvdproject.attribute("tmp_folder"));
-    m_status.iso_image->setPath(dvdproject.attribute("iso_image"));
+    m_status.tmp_folder->setUrl(KUrl(dvdproject.attribute("tmp_folder")));
+    m_status.iso_image->setUrl(KUrl(dvdproject.attribute("iso_image")));
     m_pageVob->setIntroMovie(dvdproject.attribute("intro_movie"));
 
     QDomNodeList vobs = doc.elementsByTagName("vob");