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

Reply via email to