applets/kicker: invalidate stand-alone RecentUsageModel
Reason for the change
RecentUsageModel, on types that include apps, uses a proxy model to filter out invalid apps. When there is a change in which apps are invalid, we need to invalidate this filter, in particular after installing or uninstalling apps. With RecentUsageModels that are used in a RootModel, this happens automatically as the whole RootModel is refreshed in that situation. But when used standalone, as in Kickoff's History view, this currently does not happen. As a consequence, an uninstalled app will still be considered valid, but have no actual data in the model (as its KService can no longer be accessed), so there is an empty entry in the list (possibly with a description of "undefined", which doesn't help much either).
Instead, we need to call the proxy model's invalidate() on KSycoca changes. We skip this if the RecentUsageModel's parent is a RootModel, as it happens anyway in that case, so to do it twice would be a waste.
Test plan
- Launch app
- Uninstall it
- Open Kickoff History
Screenshots or screen recordings
Bugged state:
