X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdvdwizardvob.cpp;h=0f8c172560adeac166350ec34f49aa95224926a9;hb=9999e7e3faa786ebf2fc01a5a1105b0389101e7b;hp=24921e4116ec89c035526b8d94ce1504d6fb74c5;hpb=71202eb52f1bb0a1311fe5573ca81457df1b0032;p=kdenlive diff --git a/src/dvdwizardvob.cpp b/src/dvdwizardvob.cpp index 24921e41..0f8c1725 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(); @@ -143,7 +153,7 @@ void DvdWizardVob::slotCheckProfiles() { bool conflict = false; int comboProfile = m_view.dvd_profile->currentIndex(); - for (int i = 0; i < m_vobList->topLevelItemCount(); i++) { + for (int i = 0; i < m_vobList->topLevelItemCount(); ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (item->data(0, Qt::UserRole + 1).toInt() != comboProfile) { conflict = true; @@ -274,6 +284,7 @@ void DvdWizardVob::slotAddVobFile(KUrl url, const QString &chapters, bool checkF slotCheckVobList(); slotCheckProfiles(); } + emit prepareMonitor(); } void DvdWizardVob::slotDeleteVobFile() @@ -309,7 +320,7 @@ QStringList DvdWizardVob::selectedUrls() const // First movie is only for intro i = 1; } - for (; i < max; i++) { + for (; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (item) result.append(item->text(0)); } @@ -322,7 +333,12 @@ QStringList DvdWizardVob::durations() const QStringList result; QString path; int max = m_vobList->topLevelItemCount(); - for (int i = 0; i < max; i++) { + int i = 0; + if (m_view.use_intro->isChecked()) { + // First movie is only for intro + i = 1; + } + for (; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (item) result.append(QString::number(item->data(1, Qt::UserRole).toInt())); } @@ -334,7 +350,12 @@ QStringList DvdWizardVob::chapters() const QStringList result; QString path; int max = m_vobList->topLevelItemCount(); - for (int i = 0; i < max; i++) { + int i = 0; + if (m_view.use_intro->isChecked()) { + // First movie is only for intro + i = 1; + } + for (; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (item) { result.append(item->data(1, Qt::UserRole + 1).toString()); @@ -346,7 +367,12 @@ QStringList DvdWizardVob::chapters() const void DvdWizardVob::updateChapters(QMap chaptersdata) { int max = m_vobList->topLevelItemCount(); - for (int i = 0; i < max; i++) { + int i = 0; + if (m_view.use_intro->isChecked()) { + // First movie is only for intro + i = 1; + } + for (; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (chaptersdata.contains(item->text(0))) item->setData(1, Qt::UserRole + 1, chaptersdata.value(item->text(0))); } @@ -388,7 +414,7 @@ void DvdWizardVob::slotCheckVobList() else m_view.button_down->setEnabled(hasItem); qint64 totalSize = 0; - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { item = m_vobList->topLevelItem(i); if (item) totalSize += (qint64) item->data(2, Qt::UserRole).toInt(); } @@ -509,7 +535,7 @@ void DvdWizardVob::slotTranscodeFiles() // Transcode files that do not match selected profile int max = m_vobList->topLevelItemCount(); int format = m_view.dvd_profile->currentIndex(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (item->data(0, Qt::UserRole + 1).toInt() != format) { // File needs to be transcoded @@ -531,7 +557,7 @@ void DvdWizardVob::slotTranscodeFiles() postParams << "-vf" << QString("scale=%1:%2,pad=%3:%4:%5:0,setdar=%6").arg(finalSize.width() - 2 * conv_pad).arg(destSize.height()).arg(finalSize.width()).arg(finalSize.height()).arg(conv_pad).arg(input_aspect); } 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))); + connect(d, SIGNAL(transcodedClip(KUrl,KUrl)), this, SLOT(slotTranscodedClip(KUrl,KUrl))); d->slotStartTransCode(); d->show(); @@ -547,7 +573,7 @@ void DvdWizardVob::slotTranscodedClip(KUrl src, KUrl transcoded) return; } int max = m_vobList->topLevelItemCount(); - for (int i = 0; i < max; i++) { + for (int i = 0; i < max; ++i) { QTreeWidgetItem *item = m_vobList->topLevelItem(i); if (KUrl(item->text(0)).path() == src.path()) { // Replace movie with transcoded version @@ -642,4 +668,7 @@ void DvdWizardVob::showError(const QString error) m_view.error_message->setText(error); m_view.error_message->setVisible(true); #endif -} \ No newline at end of file +} + + +#include "dvdwizardvob.moc"