]> git.sesse.net Git - kdenlive/blobdiff - src/projecttree/cutclipjob.cpp
Use KLocalizedString (for i18n only, in kf5 it will necessary => use a script for...
[kdenlive] / src / projecttree / cutclipjob.cpp
index 31caf5fe03c238641d0e41dc53b324a2f0a1e205..26ff2bba9df374a7625e938d490619566c510193 100644 (file)
 #include "kdenlivedoc.h"
 
 #include <KDebug>
-#include <KLocale>
+#include <KLocalizedString>
 
-CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters) : AbstractClipJob(CUTJOB, cType, id, parameters)
+CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, const QStringList &parameters) : AbstractClipJob(CUTJOB, cType, id, parameters)
 {
-    jobStatus = JOBWAITING;
+    m_jobStatus = JOBWAITING;
     m_dest = parameters.at(0);
     m_src = parameters.at(1);
     m_start = parameters.at(2);
@@ -35,10 +35,11 @@ CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters
     if (m_start.isEmpty()) {
         // this is a transcoding job
         description = i18n("Transcode clip");
+    } else {
+        description = i18n("Cut clip");
     }
-    else description = i18n("Cut clip");
     m_jobDuration = parameters.at(4).toInt();
-    addClipToProject = parameters.at(5).toInt();
+    m_addClipToProject = parameters.at(5).toInt();
     replaceClip = false;
     if (parameters.count() == 7) m_cutExtraParams = parameters.at(6).simplified();
 }
@@ -47,7 +48,7 @@ void CutClipJob::startJob()
 {
     // Special case: playlist clips (.mlt or .kdenlive project files)
     if (clipType == AV || clipType == AUDIO || clipType == VIDEO) {
-       QStringList parameters;
+        QStringList parameters;
         parameters << "-i" << m_src;
         if (!m_start.isEmpty())
             parameters << "-ss" << m_start <<"-t" << m_end;
@@ -61,12 +62,11 @@ void CutClipJob::startJob()
         parameters << m_dest;
         m_jobProcess = new QProcess;
         m_jobProcess->setProcessChannelMode(QProcess::MergedChannels);
-        kDebug()<<"// STARTING CIUT JOS: "<<parameters;
-        m_jobProcess->start("ffmpeg", parameters);
+        m_jobProcess->start(KdenliveSettings::ffmpegpath(), parameters);
         m_jobProcess->waitForStarted();
         while (m_jobProcess->state() != QProcess::NotRunning) {
             processLogInfo();
-            if (jobStatus == JOBABORTED) {
+            if (m_jobStatus == JOBABORTED) {
                 m_jobProcess->close();
                 m_jobProcess->waitForFinished();
                 QFile::remove(m_dest);
@@ -74,7 +74,7 @@ void CutClipJob::startJob()
             m_jobProcess->waitForFinished(400);
         }
         
-        if (jobStatus != JOBABORTED) {
+        if (m_jobStatus != JOBABORTED) {
             int result = m_jobProcess->exitStatus();
             if (result == QProcess::NormalExit) {
                 if (QFileInfo(m_dest).size() == 0) {
@@ -82,28 +82,29 @@ void CutClipJob::startJob()
                     processLogInfo();
                     m_errorMessage.append(i18n("Failed to create file."));
                     setStatus(JOBCRASHED);
+                } else {
+                    setStatus(JOBDONE);
                 }
-                else setStatus(JOBDONE);
-            }
-            else if (result == QProcess::CrashExit) {
+            } else if (result == QProcess::CrashExit) {
                 // Proxy process crashed
                 QFile::remove(m_dest);
                 setStatus(JOBCRASHED);
             }
         }
-       delete m_jobProcess;
+        delete m_jobProcess;
         return;
+    } else {
+        m_errorMessage = i18n("Cannot process this clip type.");
     }
-    else m_errorMessage = i18n("Cannot process this clip type.");
     setStatus(JOBCRASHED);
     return;
 }
 
 void CutClipJob::processLogInfo()
 {
-    if (!m_jobProcess || m_jobDuration == 0 || jobStatus == JOBABORTED) return;
+    if (!m_jobProcess || m_jobDuration == 0 || m_jobStatus == JOBABORTED) return;
     QString log = m_jobProcess->readAll();
-    if (!log.isEmpty()) m_errorMessage.append(log + '\n');
+    if (!log.isEmpty()) m_logDetails.append(log + '\n');
     int progress;
     // Parse FFmpeg output
     if (log.contains("frame=")) {
@@ -139,7 +140,7 @@ stringMap CutClipJob::cancelProperties()
 const QString CutClipJob::statusMessage()
 {
     QString statusInfo;
-    switch (jobStatus) {
+    switch (m_jobStatus) {
         case JOBWORKING:
             if (m_start.isEmpty()) statusInfo = i18n("Transcoding clip");
             else statusInfo = i18n("Extracting clip cut");
@@ -159,3 +160,5 @@ bool CutClipJob::isExclusive()
     return false;
 }
 
+
+#include "cutclipjob.moc"