X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fclipmanager.cpp;h=4c7db5873a2d4e05f9e2ac422abeb005ab01699a;hb=e0a70e0428309070f6ed2716beaeaaba05edd3b5;hp=0a8083a750f08bbb58c579a6632ddcb4a581e2ce;hpb=0bd6bcac38586a437a5b5e7b51ff7e6459187cf7;p=kdenlive diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp index 0a8083a7..4c7db587 100644 --- a/src/clipmanager.cpp +++ b/src/clipmanager.cpp @@ -19,7 +19,7 @@ #include "clipmanager.h" -#include "addclipcommand.h" +#include "commands/addclipcommand.h" #include "kdenlivesettings.h" #include "docclipbase.h" #include "kdenlivedoc.h" @@ -46,7 +46,8 @@ ClipManager::ClipManager(KdenliveDoc *doc) : m_audioThumbsQueue(), m_doc(doc), m_generatingAudioId(), - m_abortThumb(false) + m_abortThumb(false), + m_closing(false) { m_clipIdCounter = 1; m_folderIdCounter = 1; @@ -65,6 +66,7 @@ ClipManager::ClipManager(KdenliveDoc *doc) : ClipManager::~ClipManager() { + m_closing = true; m_abortThumb = true; m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); @@ -123,6 +125,7 @@ void ClipManager::requestThumbs(const QString id, QList frames) void ClipManager::stopThumbs(const QString &id) { + if (m_requestedThumbs.isEmpty() || m_closing) return; m_abortThumb = true; m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); @@ -149,13 +152,6 @@ void ClipManager::slotGetThumbs() while (!values.isEmpty() && clip->thumbProducer() && !m_abortThumb) { clip->thumbProducer()->getThumb(values.takeFirst()); } - if (m_abortThumb) { - // keep the requested frames that were not processed - m_thumbsMutex.lock(); - foreach (int frame, values) - m_requestedThumbs.insertMulti(producerId, frame); - m_thumbsMutex.unlock(); - } } }