From 88cd57714af6bfc307d41f9dfa74da45600d51e0 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 17 Dec 2022 23:06:35 +0100 Subject: Only unload the exact thumbnail that is not visible on the screen --- src/AsyncImageLoader.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/AsyncImageLoader.cpp') diff --git a/src/AsyncImageLoader.cpp b/src/AsyncImageLoader.cpp index 4fe7f0d..95bc9ca 100644 --- a/src/AsyncImageLoader.cpp +++ b/src/AsyncImageLoader.cpp @@ -315,10 +315,8 @@ namespace QuickMedia { // TODO: Instead of generating a new hash everytime to access thumbnail, cache the hash of the thumbnail url. // TODO: Cache this resize_url auto &thumbnail_data = thumbnails[url + "_" + std::to_string(resize_target_size.x) + "x" + std::to_string(resize_target_size.y)]; - if(!thumbnail_data) { + if(!thumbnail_data) thumbnail_data = std::make_shared(); - thumbnail_data->url = url; - } thumbnail_data->counter = counter; if(thumbnail_data->thumbnail_path.data.empty()) { @@ -361,7 +359,7 @@ namespace QuickMedia { if(download.read_program.pid == -1) continue; - if(download.url == it->second->url) { + if(download.thumbnail_data.get() == it->second.get()) { reset_download(download); break; } @@ -369,7 +367,7 @@ namespace QuickMedia { } image_thumbnail_create_queue.erase_if([&it](ThumbnailLoadData &load_data) { - return load_data.path.data == it->second->url; + return load_data.thumbnail_data.get() == it->second.get(); }); it = thumbnails.erase(it); -- cgit v1.2.3