[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive] src/project/jobs: Better fix for clip job counter, Correctly discard waiting job status o
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2016-06-30 23:00:14
Message-ID: E1bIkwQ-0005KK-Rr () code ! kde ! org
[Download RAW message or body]

Git commit 3dc330cdcc6f49d79759e1ba1fee51cc8936e581 by Jean-Baptiste Mardelle.
Committed on 30/06/2016 at 23:00.
Pushed by mardelle into branch 'master'.

Better fix for clip job counter, Correctly discard waiting job status on discard

M  +6    -3    src/project/jobs/jobmanager.cpp

http://commits.kde.org/kdenlive/3dc330cdcc6f49d79759e1ba1fee51cc8936e581

diff --git a/src/project/jobs/jobmanager.cpp b/src/project/jobs/jobmanager.cpp
index 2130ec5..2ed6580 100644
--- a/src/project/jobs/jobmanager.cpp
+++ b/src/project/jobs/jobmanager.cpp
@@ -90,6 +90,7 @@ void JobManager::discardJobs(const QString &id, AbstractClipJob::JOBTYPE type)
             m_jobList.at(i)->setStatus(JobAborted);
         }
     }
+    emit updateJobStatus(id, type, JobAborted);
     updateJobCount();
 }
 
@@ -149,18 +150,18 @@ void JobManager::updateJobCount()
 
 void JobManager::slotProcessJobs()
 {
+    bool firstPass = true;
     while (!m_jobList.isEmpty() && !m_abortAllJobs) {
         AbstractClipJob *job = NULL;
         m_jobMutex.lock();
-        int i = 0;
-        for (; i < m_jobList.count(); ++i) {
+        for (int i = 0; i < m_jobList.count(); ++i) {
             if (m_jobList.at(i)->status() == JobWaiting) {
                 job = m_jobList.at(i);
                 job->setStatus(JobWorking);
                 break;
             }
         }
-        if (i > 0) {
+        if (!firstPass) {
             updateJobCount();
         }
         m_jobMutex.unlock();
@@ -168,6 +169,7 @@ void JobManager::slotProcessJobs()
         if (job == NULL) {
             break;
         }
+        firstPass = false;
         QString destination = job->destination();
         // Check if the clip is still here
         ProjectClip *currentClip = m_bin->getBinClip(job->clipId());
@@ -300,6 +302,7 @@ void JobManager::slotCancelPendingJobs()
         if (m_jobList.at(i)->status() == JobWaiting) {
             // discard this job
             m_jobList.at(i)->setStatus(JobAborted);
+            emit updateJobStatus(m_jobList.at(i)->clipId(), m_jobList.at(i)->jobType, JobAborted);
         }
     }
     updateJobCount();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic