summaryrefslogtreecommitdiffstats
path: root/core/imagedownloader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/imagedownloader.cpp')
-rw-r--r--core/imagedownloader.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/core/imagedownloader.cpp b/core/imagedownloader.cpp
index d78409a3c..1559b129b 100644
--- a/core/imagedownloader.cpp
+++ b/core/imagedownloader.cpp
@@ -456,8 +456,23 @@ void Thumbnailer::imageDownloadFailed(QString filename)
workingOn.remove(filename);
}
-QImage Thumbnailer::fetchThumbnail(const QString &filename)
+QImage Thumbnailer::fetchThumbnail(const QString &filename, bool synchronous)
{
+ if (synchronous) {
+ // In synchronous mode, first try the thumbnail cache.
+ Thumbnail thumbnail = getThumbnailFromCache(filename);
+ if (!thumbnail.img.isNull())
+ return thumbnail.img;
+
+ // If that didn't work, try to thumbnail the image.
+ thumbnail = getHashedImage(filename, false);
+ if (thumbnail.type == MEDIATYPE_STILL_LOADING || thumbnail.img.isNull())
+ return failImage; // No support for delayed thumbnails (web).
+
+ int size = maxThumbnailSize();
+ return thumbnail.img.scaled(size, size, Qt::KeepAspectRatio);
+ }
+
QMutexLocker l(&lock);
// We are not currently fetching this thumbnail - add it to the list.