Bug 504891 - After applications are updated, installed, or removed, category will not display any app entries until navigating away from it and then back again
Summary: After applications are updated, installed, or removed, category will not disp...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Application Launcher (Kickoff) widget (other bugs)
Version First Reported In: 6.3.4
Platform: Kubuntu Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-27 21:38 UTC by Alexander Sanderson
Modified: 2025-06-08 14:47 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.4.0
Sentry Crash Report:


Attachments
a blank Application Launcher (227.06 KB, image/png)
2025-05-27 21:38 UTC, Alexander Sanderson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Sanderson 2025-05-27 21:38:54 UTC
Created attachment 181799 [details]
a blank Application Launcher

SUMMARY
After updating the application list (e.g. installing or removing an application), sometimes clicking on a category (like "All Applications") will result in the application list being blank. This can be worked around simply by clicking on another category, and then clicking back to the originally clicked category. 

STEPS TO REPRODUCE
1. Add or remove an application
2. Open the application launcher
3. Select "all applications"

OBSERVED RESULT
The application list is blank

EXPECTED RESULT
The application list is populated with apps

SOFTWARE/OS VERSIONS
Operating System: Kubuntu 25.04
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.12.0
Qt Version: 6.8.3
Kernel Version: 6.14.0-15-generic (64-bit)
Graphics Platform: Wayland
Processors: 16 × 12th Gen Intel® Core™ i5-1240P
Memory: 31.1 GiB of RAM
Graphics Processor: Intel® Iris® Xe Graphics
Manufacturer: Framework
Product Name: Laptop (12th Gen Intel Core)
System Version: A4
Comment 1 Nate Graham 2025-05-27 21:48:44 UTC
Can reproduce.
Comment 2 TraceyC 2025-05-28 16:35:55 UTC
Setting to confirmed, since Nate was able to reproduce
Comment 3 Bug Janitor Service 2025-05-28 17:44:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3030
Comment 4 cwo 2025-05-29 19:20:10 UTC
Git commit f8532d35a782af807448fde581f3f7239c77b7d6 by Christoph Wolk.
Committed on 29/05/2025 at 17:53.
Pushed by cwo into branch 'master'.

applets/kickoff: recalculate app model binding on rootModel refresh

Kickoff stores (a pointer to) the most recently accessed app category
(including the all-apps category, but not favorites) through a binding
chain fetching the rootModel's modelForRow() on the current index of the
sidebar. That's a method call that does not by itself create a qml
dependency on the main model state, so if the user installs or removes
software, the underlying model is replaced completely (and the existing
one is deleted), but the binding is not updated to point to the new
(sub)model. Accessing the same category again will then fail (as it
reads the old model, now null), until the user selects a different
category first, changing the index and causing the binding to be
reevaluated.

Instead, reevaluate the binding whenever the rootModel is refreshed.

M  +6    -0    applets/kickoff/package/contents/ui/ApplicationsPage.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/f8532d35a782af807448fde581f3f7239c77b7d6
Comment 5 cwo 2025-06-04 06:34:12 UTC
Git commit 172d3f096a9788ad97e7232482702ef8bc6c6110 by Christoph Wolk.
Committed on 04/06/2025 at 05:52.
Pushed by cwo into branch 'Plasma/6.4'.

applets/kickoff: recalculate app model binding on rootModel refresh

Kickoff stores (a pointer to) the most recently accessed app category
(including the all-apps category, but not favorites) through a binding
chain fetching the rootModel's modelForRow() on the current index of the
sidebar. That's a method call that does not by itself create a qml
dependency on the main model state, so if the user installs or removes
software, the underlying model is replaced completely (and the existing
one is deleted), but the binding is not updated to point to the new
(sub)model. Accessing the same category again will then fail (as it
reads the old model, now null), until the user selects a different
category first, changing the index and causing the binding to be
reevaluated.

Instead, reevaluate the binding whenever the rootModel is refreshed.


(cherry picked from commit f8532d35a782af807448fde581f3f7239c77b7d6)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

M  +6    -0    applets/kickoff/package/contents/ui/ApplicationsPage.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/172d3f096a9788ad97e7232482702ef8bc6c6110