diff --git a/lib/thumbnailprovider/thumbnailprovider.cpp b/lib/thumbnailprovider/thumbnailprovider.cpp --- a/lib/thumbnailprovider/thumbnailprovider.cpp +++ b/lib/thumbnailprovider/thumbnailprovider.cpp @@ -183,6 +183,7 @@ if (mPreviousThumbnailGenerator) { disconnect(mPreviousThumbnailGenerator, nullptr, sThumbnailWriter, nullptr); } + sThumbnailWriter->requestInterruption(); sThumbnailWriter->wait(); } diff --git a/lib/thumbnailprovider/thumbnailwriter.cpp b/lib/thumbnailprovider/thumbnailwriter.cpp --- a/lib/thumbnailprovider/thumbnailwriter.cpp +++ b/lib/thumbnailprovider/thumbnailwriter.cpp @@ -68,7 +68,7 @@ void ThumbnailWriter::run() { QMutexLocker locker(&mMutex); - while (!mCache.isEmpty()) { + while (!mCache.isEmpty() && !isInterruptionRequested()) { Cache::ConstIterator it = mCache.constBegin(); const QString path = it.key(); const QImage image = it.value();