Bug 480881

Summary: When going back to Devices or Graphics categories already viewed - they become blank.
Product: [Applications] systemsettings Reporter: feature
Component: generalAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED FIXED    
Severity: major CC: kde, nate, qydwhotmail, sitter
Priority: NOR Keywords: qt6, regression
Version First Reported In: master   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description feature 2024-02-05 09:08:27 UTC
SUMMARY

When viewing Block Devices, CPU, Firmware Security, Interrupts, PCI, OpenCL, OpenGL (EGL and GLX), Vulken, Wayland, Window Manager, and X-Server the data would show on first selection - but after viewing other categories and returning to any of the above mentioned ones, there's a blank page instead of the info that was displayed previously.


STEPS TO REPRODUCE
1. View any of the above mentioned categories
2. View any other category
3. Return to the first category

OBSERVED RESULT
No information is displayed on second viewing

EXPECTED RESULT
The information displayed on first viewing should remain.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 6.0.80
(available in About System)
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.1

ADDITIONAL INFORMATION
Comment 2 Nate Graham 2024-02-05 17:31:13 UTC
Can also reproduce.
Comment 3 Bug Janitor Service 2024-02-07 10:49:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kinfocenter/-/merge_requests/189
Comment 4 David Edmundson 2024-02-07 13:07:24 UTC
Git commit 2de76c72b888ebfd853cd8f96ee2d75730ea45e9 by David Edmundson.
Committed on 07/02/2024 at 13:07.
Pushed by davidedmundson into branch 'master'.

Avoid QML singletons to work with shared QML engines

KCM's were registering singleton instances. This has the lifespan of the
QMLEngine, and we were using objects with the lifespan of the loaded
KCM. Recent changes share the QML engine used between modules.

We have an existing mechanism to link the C++ container to the loaded UI
which is used in all other system settings. Port everything to using the
attached kcm object and adding a getter there.

M  +9    -2    Modules/block_devices/main.cpp
M  +1    -2    Modules/block_devices/ui/main.qml
M  +9    -2    Modules/cpu/main.cpp
M  +1    -2    Modules/cpu/ui/main.qml
M  +9    -2    Modules/egl/main.cpp
M  +1    -2    Modules/egl/ui/main.qml
M  +9    -2    Modules/firmware_security/main.cpp
M  +1    -2    Modules/firmware_security/ui/main.qml
M  +9    -2    Modules/glx/main.cpp
M  +1    -2    Modules/glx/ui/main.qml
M  +10   -3    Modules/interrupts/main.cpp
M  +1    -2    Modules/interrupts/ui/main.qml
M  +11   -4    Modules/kwinsupportinfo/main.cpp
M  +1    -2    Modules/kwinsupportinfo/ui/main.qml
M  +9    -2    Modules/opencl/main.cpp
M  +1    -2    Modules/opencl/ui/main.qml
M  +10   -2    Modules/pci/main.cpp
M  +1    -3    Modules/pci/ui/main.qml
M  +9    -2    Modules/vulkan/main.cpp
M  +1    -2    Modules/vulkan/ui/main.qml
M  +9    -2    Modules/wayland/main.cpp
M  +1    -2    Modules/wayland/ui/main.qml
M  +9    -2    Modules/xserver/main.cpp
M  +1    -2    Modules/xserver/ui/main.qml

https://invent.kde.org/plasma/kinfocenter/-/commit/2de76c72b888ebfd853cd8f96ee2d75730ea45e9
Comment 5 David Edmundson 2024-02-07 15:57:37 UTC
Git commit 69d3e9c9825886a8f5f07169f94d411e9a46f9b8 by David Edmundson.
Committed on 07/02/2024 at 15:57.
Pushed by davidedmundson into branch 'Plasma/6.0'.

Avoid QML singletons to work with shared QML engines

KCM's were registering singleton instances. This has the lifespan of the
QMLEngine, and we were using objects with the lifespan of the loaded
KCM. Recent changes share the QML engine used between modules.

We have an existing mechanism to link the C++ container to the loaded UI
which is used in all other system settings. Port everything to using the
attached kcm object and adding a getter there.
(cherry picked from commit 2de76c72b888ebfd853cd8f96ee2d75730ea45e9)

M  +9    -2    Modules/cpu/main.cpp
M  +1    -2    Modules/cpu/ui/main.qml
M  +9    -2    Modules/egl/main.cpp
M  +1    -2    Modules/egl/ui/main.qml
M  +9    -2    Modules/firmware_security/main.cpp
M  +1    -2    Modules/firmware_security/ui/main.qml
M  +9    -2    Modules/glx/main.cpp
M  +1    -2    Modules/glx/ui/main.qml
M  +10   -3    Modules/interrupts/main.cpp
M  +1    -2    Modules/interrupts/ui/main.qml
M  +11   -4    Modules/kwinsupportinfo/main.cpp
M  +1    -2    Modules/kwinsupportinfo/ui/main.qml
M  +9    -2    Modules/opencl/main.cpp
M  +1    -2    Modules/opencl/ui/main.qml
M  +10   -2    Modules/pci/main.cpp
M  +1    -3    Modules/pci/ui/main.qml
M  +9    -2    Modules/vulkan/main.cpp
M  +1    -2    Modules/vulkan/ui/main.qml
M  +9    -2    Modules/wayland/main.cpp
M  +1    -2    Modules/wayland/ui/main.qml
M  +9    -2    Modules/xserver/main.cpp
M  +1    -2    Modules/xserver/ui/main.qml

https://invent.kde.org/plasma/kinfocenter/-/commit/69d3e9c9825886a8f5f07169f94d411e9a46f9b8