A few KDE versions ago, the KCM and app results were provided by the same plugin.
To make sure they do not appear very far down the list, the plugin id is inserted right after the services runner.
CCBUG: 446239
This will result in cleaner diffs when a new value is added
and clang-format will not indent them with the opening
brace of the initializer list which makes is slightly easier to read.
If no runners are explicitly specified the RunnerManager will read the enabled plugins from the krunnerrc file. This way enabled plugins are configurable and consistent with KRunner.
Better to keep the exact semantics when porting stuff, we can change it later
if we want. (Disregarding that I even got the boolean the wrong way around).
Summary:
once we have built our actual final "raw-data" in the mapping
hash, we iterate all runners and sort their match lists.
this in particular prevents matches to get modeled in order of
appearance rather than relevance, which for finely relevance sorted
runners such as the services runner is very important to give
the most suitable results first.
Test Plan:
- add some chrome sites to desktop
- search for chrome in kickoff
- results ordered as per services runner relevance with chrome itself at the top of the list
Reviewers: hein
Reviewed By: hein
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3704
* Not just apps, also documents and contacts can now be added
to the favorites. All types of content have their full context
menu action list available also in the favorites sidebar.
* Contact favorites use the contact photo as icon, with a circular
alpha mask and the presence status icon as overlay badge.
* Adding/removing favorites from context menus now works every-
where, e.g. also in KRunner-based search results.
* Far fewer actions now cause a full rebuild of the model tree
and instead only delta updates, as a side-effect of adding a
mechanism for this to e.g. handle status changes for contact
items.
* Various bugs around hiding/unhiding apps got fixed.
* Lots of code cleanup + less coupling all around.
This version is a mostly-from-scratch reimplementation of
the Plasma 1 version.
Some minor-in-scope loose ends are left, both external and
internal to the code; check TODO for whether your issue is
already known.