This patch adds a new enabled role to kicker items instead of creating
and deleting them if they're not available due to configuration.
It ports to the new session code in libkworkspace dropping our need for
KDE4Support.
From: D20237
* 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.
If menu flattening is enabled and a group actually has subgroups
that get flattened in, separators are ignored and entriees are
collated alphabetically.
Leading or trailing separators are always ignored, and multiple
consecutive separators are collapsed into one.
BUG:347412
Needs kactivities.git:ivan/libkactivities-experimental-stats
Known problems:
* The model class hierarchy in Kicker needs refactoring to
work properly with proxy models; lots of mess right now
just to get things to display for testing.
* Due to the above, the funnel model that enables proper
delegate instance reuse when switching a menu dialog
between sibling categories is currently disabled, causing
bad performance.
* Forget/Forget All for documents isn't available anymore
due to missing API in KActivities.
* KActivitiesStats' ResultModel isn't inserting rows when
new files are opened at runtime.
Ivan: This currently assumes my locally hacked up KActivities
copy to fix the CMake problems; please feel free to push to
this branch when you've made the upstream CMake changes to
make it build.
CCMAIL:ivan.cukic@kde.org
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.