+void ProjectList::slotTranscodeClipJob(QStringList ids, QString params, QString desc)
+{
+ QStringList existingFiles;
+ foreach(const QString &id, ids) {
+ ProjectItem *item = getItemById(id);
+ if (!item) continue;
+ QString newFile = params.section(' ', -1).replace("%1", item->clipUrl().path());
+ if (QFile::exists(newFile)) existingFiles << newFile;
+ }
+ if (!existingFiles.isEmpty()) {
+ if (KMessageBox::warningContinueCancelList(this, i18n("The transcoding job will overwrite the following files:"), existingFiles) == KMessageBox::Cancel) return;
+ }
+
+ foreach(const QString &id, ids) {
+ ProjectItem *item = getItemById(id);
+ if (!item || !item->referencedClip()) continue;
+ QString src = item->clipUrl().path();
+ QString dest = params.section(' ', -1).replace("%1", src);
+ m_processingProxy.append(dest);
+ QStringList jobParams;
+ jobParams << dest << src << QString() << QString();
+ double clipFps = item->referencedClip()->getProperty("fps").toDouble();
+ if (clipFps == 0) clipFps = m_fps;
+ int max = item->clipMaxDuration();
+ QString duration = QString::number(max);
+ jobParams << duration;
+ jobParams << QString::number(KdenliveSettings::add_clip_cut());
+ jobParams << params.section(' ', 0, -2);
+ CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams);
+ m_jobList.append(job);
+ setJobStatus(item, job->jobType, JOBWAITING, 0, job->statusMessage());
+ }
+ slotCheckJobProcess();
+
+}
+