X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcliptranscode.cpp;h=1215248a145fff4159d2de2cdfb0bfce145fb773;hb=ebc919bf530e7ff6dce5ebfb43d496ccc38823c0;hp=42a3a6ca5e2763c8e62b757dc33cf0aa7caaf630;hpb=4274029010fe1c1f4f5a2d4d4b6981fbdb57f490;p=kdenlive diff --git a/src/cliptranscode.cpp b/src/cliptranscode.cpp index 42a3a6ca..1215248a 100644 --- a/src/cliptranscode.cpp +++ b/src/cliptranscode.cpp @@ -27,8 +27,8 @@ #include -ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QString &description, QWidget * parent) : - QDialog(parent), m_urls(urls), m_duration(0) +ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QStringList &postParams, const QString &description, bool automaticMode, QWidget * parent) : + QDialog(parent), m_urls(urls), m_duration(0), m_automaticMode(automaticMode), m_postParams(postParams) { setFont(KGlobalSettings::toolBarFont()); setupUi(this); @@ -42,7 +42,11 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QStri #endif log_text->setHidden(true); setWindowTitle(i18n("Transcode Clip")); + if (m_automaticMode) { + auto_add->setHidden(true); + } auto_add->setText(i18np("Add clip to project", "Add clips to project", m_urls.count())); + auto_add->setChecked(KdenliveSettings::add_new_clip()); if (m_urls.count() == 1) { QString fileName = m_urls.at(0).path(); //.section('.', 0, -1); @@ -73,7 +77,7 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QStri } else transcode_info->setHidden(true); } else { // load Profiles - KSharedConfigPtr config = KSharedConfig::openConfig("kdenlivetranscodingrc"); + KSharedConfigPtr config = KSharedConfig::openConfig("kdenlivetranscodingrc", KConfig::CascadeConfig); KConfigGroup transConfig(config, "Transcoding"); // read the entries QMap< QString, QString > profiles = transConfig.entryMap(); @@ -101,6 +105,7 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString ¶ms, const QStri ClipTranscode::~ClipTranscode() { + KdenliveSettings::setAdd_new_clip(auto_add->isChecked()); if (m_transcodeProcess.state() != QProcess::NotRunning) { m_transcodeProcess.close(); } @@ -138,11 +143,30 @@ 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"; } - foreach(QString s, params.split(' ')) + + bool replaceVfParams = false; + foreach(QString s, params.split(' ')) { + if (replaceVfParams) { + s= m_postParams.at(1); + replaceVfParams = false; + } parameters << s.replace("%1", destination); + if (s == "-vf") { + replaceVfParams = true; + } + } + buttonBox->button(QDialogButtonBox::Abort)->setText(i18n("Abort")); m_destination = destination + extension; @@ -198,14 +222,15 @@ void ClipTranscode::slotTranscodeFinished(int exitCode, QProcess::ExitStatus exi } if (exitCode == 0 && exitStatus == QProcess::NormalExit) { log_text->setHtml(log_text->toPlainText() + "
" + i18n("Transcoding finished.")); - if (auto_add->isChecked()) { + if (auto_add->isChecked() || m_automaticMode) { KUrl url; if (urls_list->count() > 0) { QString params = ffmpeg_params->toPlainText().simplified(); QString extension = params.section("%1", 1, 1).section(' ', 0, 0); url = KUrl(dest_url->url().path(KUrl::AddTrailingSlash) + source_url->url().fileName() + extension); } else url = dest_url->url(); - emit addClip(url); + if (m_automaticMode) emit transcodedClip(source_url->url(), url); + else emit addClip(url); } if (urls_list->count() > 0 && m_urls.count() > 0) { m_transcodeProcess.close();