From 9278bc71e5136b057be653aae43686adb946373b Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Tue, 20 Dec 2011 15:07:43 +0100 Subject: [PATCH] Implement "add clip to project" checkbox in zone extract feature --- src/kdenlivesettings.kcfg | 5 +++++ src/projectlist.cpp | 11 ++++++++--- src/projecttree/cutclipjob.cpp | 3 ++- src/projecttree/cutclipjob.h | 3 ++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg index 4abadc83..29ae167c 100644 --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -780,6 +780,11 @@ 0 + + + + true + diff --git a/src/projectlist.cpp b/src/projectlist.cpp index ba755238..6fc43f0f 100644 --- a/src/projectlist.cpp +++ b/src/projectlist.cpp @@ -2556,24 +2556,26 @@ void ProjectList::slotCutClipJob(const QString &id, QPoint zone) QDialog *d = new QDialog(this); Ui::CutJobDialog_UI ui; ui.setupUi(d); + ui.add_clip->setChecked(KdenliveSettings::add_clip_cut()); ui.file_url->fileDialog()->setOperationMode(KFileDialog::Saving); ui.file_url->setUrl(KUrl(dest)); ui.info_label->setText(i18n("Extracting %1 out of %2", timeOut, Timecode::getStringTimecode(max, clipFps, true))); if (d->exec() != QDialog::Accepted) return; dest = ui.file_url->url().path(); QString extraParams = ui.extra_params->toPlainText().simplified(); + KdenliveSettings::setAdd_clip_cut(ui.add_clip->isChecked()); delete d; if (QFileInfo(dest).size() > 0) { // Clip already created setJobStatus(item, JOBDONE); - emit addClip(dest, QString(), QString()); + if (KdenliveSettings::add_clip_cut()) emit addClip(dest, QString(), QString()); return; } if (!item->isJobRunning()) setJobStatus(item, JOBWAITING); m_processingProxy.append(dest); QStringList jobParams; - jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration); + jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration) << QString::number(KdenliveSettings::add_clip_cut()); if (!extraParams.isEmpty()) jobParams << extraParams; CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams); m_jobList.append(job); @@ -2728,7 +2730,10 @@ void ProjectList::slotProcessJobs() setJobStatus(processingItem, JOBDONE); if (job->jobType == PROXYJOB) slotGotProxy(job->destination()); //TODO: set folder for transcoded clips - else if (job->jobType == CUTJOB) emit addClip(job->destination(), QString(), QString()); + else if (job->jobType == CUTJOB) { + CutClipJob *cutJob = static_cast(job); + if (cutJob->addClipToProject) emit addClip(job->destination(), QString(), QString()); + } } else if (result == QProcess::CrashExit) { // Proxy process crashed diff --git a/src/projecttree/cutclipjob.cpp b/src/projecttree/cutclipjob.cpp index bc483b52..e52a7f36 100644 --- a/src/projecttree/cutclipjob.cpp +++ b/src/projecttree/cutclipjob.cpp @@ -33,7 +33,8 @@ CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters m_start = parameters.at(2); m_end = parameters.at(3); m_jobDuration = parameters.at(4).toInt(); - if (parameters.count() == 6) m_cutExtraParams = parameters.at(5).simplified(); + addClipToProject = parameters.at(5).toInt(); + if (parameters.count() == 7) m_cutExtraParams = parameters.at(6).simplified(); } QProcess *CutClipJob::startJob(bool *ok) diff --git a/src/projecttree/cutclipjob.h b/src/projecttree/cutclipjob.h index c6178cf9..966541a8 100644 --- a/src/projecttree/cutclipjob.h +++ b/src/projecttree/cutclipjob.h @@ -38,6 +38,7 @@ public: QProcess *startJob(bool *ok); stringMap cancelProperties(); int processLogInfo(); + bool addClipToProject; private: QString m_dest; @@ -45,7 +46,7 @@ private: QString m_start; QString m_end; QString m_cutExtraParams; - int m_jobDuration; + int m_jobDuration; }; #endif -- 2.39.5