diff options
Diffstat (limited to 'src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp b/src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp index ddb1cba666..e9a07b2b31 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/synchronousimagecache.cpp @@ -32,13 +32,36 @@ QImage SynchronousImageCache::image(Utils::PathString filePath, if (entry) return *entry; - const auto &[image, smallImage] = m_collector.createImage(filePath, extraId, auxiliaryData); + const auto &[image, midSizeImage, smallImage] = m_collector.createImage(filePath, + extraId, + auxiliaryData); - m_storage.storeImage(id, timeStamp, image, smallImage); + m_storage.storeImage(id, timeStamp, image, midSizeImage, smallImage); return image; } +QImage SynchronousImageCache::midSizeImage(Utils::PathString filePath, + Utils::SmallString extraId, + const ImageCache::AuxiliaryData &auxiliaryData) +{ + const auto id = createId(filePath, extraId); + + const auto timeStamp = m_timeStampProvider.timeStamp(filePath); + const auto entry = m_storage.fetchMidSizeImage(id, timeStamp); + + if (entry) + return *entry; + + const auto &[image, midSizeImage, smallImage] = m_collector.createImage(filePath, + extraId, + auxiliaryData); + + m_storage.storeImage(id, timeStamp, image, midSizeImage, smallImage); + + return midSizeImage; +} + QImage SynchronousImageCache::smallImage(Utils::PathString filePath, Utils::SmallString extraId, const ImageCache::AuxiliaryData &auxiliaryData) @@ -51,9 +74,11 @@ QImage SynchronousImageCache::smallImage(Utils::PathString filePath, if (entry) return *entry; - const auto &[image, smallImage] = m_collector.createImage(filePath, extraId, auxiliaryData); + const auto &[image, midSizeImage, smallImage] = m_collector.createImage(filePath, + extraId, + auxiliaryData); - m_storage.storeImage(id, timeStamp, image, smallImage); + m_storage.storeImage(id, timeStamp, image, midSizeImage, smallImage); return smallImage; } |