diff options
author | Robert C. Helling <helling@atdotde.de> | 2015-11-09 16:48:12 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-11-09 10:18:10 -0800 |
commit | 2075038de1d3a181eb964020c635099ebf52b4ed (patch) | |
tree | c1d3bfa1e455928c78cdd91312ebffaab35482d2 /qt-models/divepicturemodel.cpp | |
parent | e0f43d8a84b29431359452b694a556052a74135d (diff) | |
download | subsurface-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/divepicturemodel.cpp')
-rw-r--r-- | qt-models/divepicturemodel.cpp | 10 |
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; } |