X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fclipmanager.cpp;h=0a8083a750f08bbb58c579a6632ddcb4a581e2ce;hb=0bd6bcac38586a437a5b5e7b51ff7e6459187cf7;hp=41df4c839f25b134488875227daf2a2b9d29ea57;hpb=7b1170e1cede7a00add52a97065560ff126b6bbd;p=kdenlive diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp index 41df4c83..0a8083a7 100644 --- a/src/clipmanager.cpp +++ b/src/clipmanager.cpp @@ -65,11 +65,11 @@ ClipManager::ClipManager(KdenliveDoc *doc) : ClipManager::~ClipManager() { + m_abortThumb = true; + m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); m_requestedThumbs.clear(); m_thumbsMutex.unlock(); - m_abortThumb = true; - m_thumbsThread.waitForFinished(); m_audioThumbsQueue.clear(); m_generatingAudioId.clear(); m_thumbsMutex.lock(); @@ -84,11 +84,11 @@ ClipManager::~ClipManager() void ClipManager::clear() { + m_abortThumb = true; + m_thumbsThread.waitForFinished(); m_thumbsMutex.lock(); m_requestedThumbs.clear(); m_thumbsMutex.unlock(); - m_abortThumb = true; - m_thumbsThread.waitForFinished(); m_abortThumb = false; m_folderList.clear(); m_audioThumbsQueue.clear(); @@ -111,7 +111,6 @@ void ClipManager::clearCache() void ClipManager::requestThumbs(const QString id, QList frames) { - kDebug()<<"// Request thbs: "<::const_iterator i = m_requestedThumbs.constBegin(); - while (i != m_requestedThumbs.constEnd() && !m_abortThumb) { - const QString producerId = i.key(); + QMap::iterator i = m_requestedThumbs.begin(); + while (i != m_requestedThumbs.end() && !m_abortThumb) { + QString producerId = i.key(); m_thumbsMutex.lock(); QList values = m_requestedThumbs.values(producerId); - m_requestedThumbs.remove(producerId); + i = m_requestedThumbs.erase(i); m_thumbsMutex.unlock(); qSort(values); DocClipBase *clip = getClipById(producerId); @@ -157,7 +156,6 @@ void ClipManager::slotGetThumbs() m_requestedThumbs.insertMulti(producerId, frame); m_thumbsMutex.unlock(); } - i = m_requestedThumbs.constBegin(); } }