broulik created this revision. broulik added reviewers: Plasma, leinir, davidre. Herald added a project: Plasma. Herald added a subscriber: plasma-devel. broulik requested review of this revision.
REVISION SUMMARY GHNS Quick Button signals `changedEntriesChanged` initially even if nothing changed. While this is a bug that should be fixed in GHNS, the wallpaper model didn't handle the case well, when the model was reloaded while a preview was being generated. It looks up whether a preview exists by `QUrl` and stores a `QPersistentModelIndex`. However, when the model is reloaded and it accesses `data` for the same `QUrl`, the job might still be in-flight, but the `QPersistentModelIndex` is invalid as the model has been reset. This fixes it by performing all lookups exclusively on `QPersistentModelIndex`. The hash lookup is optimized for `data()` (loads of accesses) with the slower `key()` lookup being done only when the less frequently occurring thumbnail generation finishes/fails. It will now do two preview jobs initially, but at least it shows something again... BUG: 419234 FIXED-IN: 5.18.4 TEST PLAN - I get thumbnails in wallpaper dialog again - It doesn't spwan multiple preview jobs for the same index anymore. REPOSITORY R120 Plasma Workspace REVISION DETAIL https://phabricator.kde.org/D28420 AFFECTED FILES wallpapers/image/backgroundlistmodel.cpp wallpapers/image/backgroundlistmodel.h To: broulik, #plasma, leinir, davidre Cc: plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart