aboutsummaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2015-11-09 16:48:12 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-11-09 10:18:10 -0800
commit2075038de1d3a181eb964020c635099ebf52b4ed (patch)
treec1d3bfa1e455928c78cdd91312ebffaab35482d2 /qt-models
parente0f43d8a84b29431359452b694a556052a74135d (diff)
downloadsubsurface-2075038de1d3a181eb964020c635099ebf52b4ed.tar.gz
Store Thumbnails with image hashes
This drastically improves the time it takes to select a dive with several pictures at the expense of longer startup and bigger hash files. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/divepicturemodel.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/qt-models/divepicturemodel.cpp b/qt-models/divepicturemodel.cpp
index 55f20cef9..602663ec1 100644
--- a/qt-models/divepicturemodel.cpp
+++ b/qt-models/divepicturemodel.cpp
@@ -6,19 +6,21 @@
#include <QtConcurrent>
+extern QHash <QString, QImage > thumbnailCache;
+
+
SPixmap scaleImages(picturepointer picture)
{
- static QHash <QString, QImage > cache;
SPixmap ret;
ret.first = picture;
- if (cache.contains(picture->filename) && !cache.value(picture->filename).isNull()) {
- ret.second = cache.value(picture->filename);
+ if (thumbnailCache.contains(picture->filename) && !thumbnailCache.value(picture->filename).isNull()) {
+ ret.second = thumbnailCache.value(picture->filename);
} else {
int dim = defaultIconMetrics().sz_pic;
QImage p = SHashedImage(picture);
if(!p.isNull()) {
p = p.scaled(dim, dim, Qt::KeepAspectRatio);
- cache.insert(picture->filename, p);
+ thumbnailCache.insert(picture->filename, p);
}
ret.second = p;
}