From 71202eb52f1bb0a1311fe5573ca81457df1b0032 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Fri, 9 Nov 2012 08:42:03 +0100 Subject: [PATCH 1/1] Fix small bugs in DVD Wizard transcoding workflow --- src/cliptranscode.cpp | 11 +++- src/cliptranscode.h | 4 +- src/dvdwizardvob.cpp | 9 ++- src/widgets/dvdwizardvob_ui.ui | 104 ++++++++++++++++----------------- 4 files changed, 72 insertions(+), 56 deletions(-) diff --git a/src/cliptranscode.cpp b/src/cliptranscode.cpp index 22df000d..1215248a 100644 --- a/src/cliptranscode.cpp +++ b/src/cliptranscode.cpp @@ -101,7 +101,6 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QStri ffmpeg_params->setMaximumHeight(QFontMetrics(font()).lineSpacing() * 5); adjustSize(); - if (m_automaticMode) slotStartTransCode(); } ClipTranscode::~ClipTranscode() @@ -144,7 +143,15 @@ void ClipTranscode::slotStartTransCode() QString s_url = source_url->url().path(); parameters << "-i" << s_url; if (QFile::exists(destination + extension)) { - if (KMessageBox::questionYesNo(this, i18n("File %1 already exists.\nDo you want to overwrite it?", destination + extension)) == KMessageBox::No) return; + if (KMessageBox::questionYesNo(this, i18n("File %1 already exists.\nDo you want to overwrite it?", destination + extension)) == KMessageBox::No) { + // Abort operation + if (m_automaticMode) { + // inform caller that we aborted + emit transcodedClip(source_url->url(), KUrl()); + close(); + } + return; + } parameters << "-y"; } diff --git a/src/cliptranscode.h b/src/cliptranscode.h index 05d0841c..3b707ed7 100644 --- a/src/cliptranscode.h +++ b/src/cliptranscode.h @@ -40,10 +40,12 @@ public: ClipTranscode(KUrl::List urls, const QString ¶ms, const QStringList &postParams, const QString &description, bool automaticMode = false, QWidget * parent = 0); ~ClipTranscode(); +public slots: +void slotStartTransCode(); + private slots: void slotShowTranscodeInfo(); - void slotStartTransCode(); void slotTranscodeFinished(int exitCode, QProcess::ExitStatus exitStatus); void slotUpdateParams(int ix = -1); diff --git a/src/dvdwizardvob.cpp b/src/dvdwizardvob.cpp index 9cdfd8d0..24921e41 100644 --- a/src/dvdwizardvob.cpp +++ b/src/dvdwizardvob.cpp @@ -123,7 +123,7 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) : m_warnMessage->setCloseButtonVisible(false); m_warnMessage->addAction(m_transcodeAction); QGridLayout *s = static_cast (layout()); - s->addWidget(m_warnMessage, 3, 0, 1, -1); + s->addWidget(m_warnMessage, 2, 0, 1, -1); m_warnMessage->hide(); m_view.button_transcode->setHidden(true); #else @@ -532,13 +532,20 @@ void DvdWizardVob::slotTranscodeFiles() } ClipTranscode *d = new ClipTranscode(KUrl::List () << KUrl(item->text(0)), params.section(';', 0, 0), postParams, i18n("Transcoding to DVD format"), true, this); connect(d, SIGNAL(transcodedClip(KUrl,KUrl)), this, SLOT(slotTranscodedClip(KUrl, KUrl))); + d->slotStartTransCode(); d->show(); + } } } void DvdWizardVob::slotTranscodedClip(KUrl src, KUrl transcoded) { + if (transcoded.isEmpty()) { + // Transcoding canceled or failed + m_transcodeAction->setEnabled(true); + return; + } int max = m_vobList->topLevelItemCount(); for (int i = 0; i < max; i++) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); diff --git a/src/widgets/dvdwizardvob_ui.ui b/src/widgets/dvdwizardvob_ui.ui index 515605da..65540369 100644 --- a/src/widgets/dvdwizardvob_ui.ui +++ b/src/widgets/dvdwizardvob_ui.ui @@ -6,73 +6,32 @@ 0 0 - 459 - 255 + 463 + 275 0 - - - - Remove file - - - - - - - Use first movie as intro - - - - + - - - - DVD format - - - - - - - Qt::Horizontal - - - - 244 - 20 - - - + + - + ... - - - - - - - Add movie file - - - - + @@ -85,7 +44,14 @@ - + + + + Use first movie as intro + + + + @@ -107,10 +73,24 @@ - - + + - ... + Remove file + + + + + + + Add movie file + + + + + + + DVD format @@ -121,6 +101,26 @@ + + + + ... + + + + + + + Qt::Horizontal + + + + 244 + 20 + + + + -- 2.39.5