diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-02-02 21:23:52 +0100 |
---|---|---|
committer | Robert C. Helling <helling@atdotde.de> | 2019-02-07 16:06:43 +0100 |
commit | 8a8063c1cd7b8e5eae861a8d7eeb89e7e3251e03 (patch) | |
tree | 261d1a78d4c21378e08380def3775823b82fe079 /core/imagedownloader.cpp | |
parent | 07b0df215f5562657a3a2c9dd20a95d489e8dcd3 (diff) | |
download | subsurface-8a8063c1cd7b8e5eae861a8d7eeb89e7e3251e03.tar.gz |
Profile: add "synchronous" mode for picture plotting
The thumbnails were fetched in the background to achieve a
snappier UI. The problem with that is that on LaTeX etc.
export only placeholder thumbnails were shown.
Therefore, implement a synchronous mode. This only tries
to fetch cached thumbnails or calculate thumbnails for
images. Videos and remote files are not supported.
Fixes #1963
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/imagedownloader.cpp')
-rw-r--r-- | core/imagedownloader.cpp | 17 |
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. |