ivan updated this revision to Diff 15872. ivan added a comment.
I realized I can be quite thick. After I created a new level of indirection so that each applet can have its own favourite ordering (as requested), I realized I reimplemented most of the logic of `KAStats::ResultModel` inside of Kicker, but with the `QSortFilterProxyModel` which did not work correctly (Kicker does not like whole model updates on drag and drop). This is a new and beautiful approach that relies on the ordering implemented in the `KAStats::ResultModel` - just with each applet registering as a separate client. I need to test this properly, and I'd like for everyone to join in with the testing. Everything is much cleaner now - both favourites merging and reordering. CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D3805?vs=15771&id=15872 REVISION DETAIL https://phabricator.kde.org/D3805 AFFECTED FILES applets/kicker/CMakeLists.txt applets/kicker/package/contents/code/tools.js applets/kicker/package/contents/config/main.xml applets/kicker/package/contents/ui/ActionMenu.qml applets/kicker/package/contents/ui/SideBarItem.qml applets/kicker/package/contents/ui/main.qml applets/kicker/plugin/computermodel.cpp applets/kicker/plugin/computermodel.h applets/kicker/plugin/favoritesmodel.cpp applets/kicker/plugin/favoritesmodel.h applets/kicker/plugin/kastatsfavoritesmodel.cpp applets/kicker/plugin/kastatsfavoritesmodel.h applets/kicker/plugin/kickerplugin.cpp applets/kicker/plugin/placeholdermodel.cpp applets/kicker/plugin/placeholdermodel.h applets/kicker/plugin/recentusagemodel.cpp applets/kicker/plugin/rootmodel.cpp applets/kicker/plugin/rootmodel.h applets/kicker/plugin/simplefavoritesmodel.cpp applets/kicker/plugin/simplefavoritesmodel.h applets/kicker/plugin/systemmodel.cpp To: ivan, mart, hein Cc: Zren, plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas