]> git.sesse.net Git - kdenlive/commitdiff
Implement "add clip to project" checkbox in zone extract feature
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 20 Dec 2011 14:07:43 +0000 (15:07 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 20 Dec 2011 14:07:43 +0000 (15:07 +0100)
src/kdenlivesettings.kcfg
src/projectlist.cpp
src/projecttree/cutclipjob.cpp
src/projecttree/cutclipjob.h

index 4abadc83ca3f479b4928674486ab30e43ed3d209..29ae167cd67047bd12fe6ddbcdab2718082b4b12 100644 (file)
       <label>Should we display video frames while capturing.</label>
       <default>0</default>
     </entry>
+    
+    <entry name="add_clip_cut" type="Bool">
+      <label>Add cutted clips to project after transcoding.</label>
+      <default>true</default>
+    </entry>
 
   </group>
 
index ba755238cbdad7b898416bf3d868def49ec0c8c5..6fc43f0f5b74a80ce7b2c84a33f90812e95d8c82 100644 (file)
@@ -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<CutClipJob *>(job);
+                if (cutJob->addClipToProject) emit addClip(job->destination(), QString(), QString());
+            }
         }
         else if (result == QProcess::CrashExit) {
             // Proxy process crashed
index bc483b52b2f98d626d602b8800a4fcd506d4139c..e52a7f3663636f5b36cc8567815d9d9717398f7f 100644 (file)
@@ -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)
index c6178cf975964b771cc95237338a5a05dec44556..966541a86a72f088400cafca219576b8d86e3478 100644 (file)
@@ -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