| Summary: | Flicker when switching tabs in Energy Saving KCM | ||
|---|---|---|---|
| Product: | [Applications] systemsettings | Reporter: | Patrick Silva <bugseforuns> |
| Component: | kcm_powerdevil | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | CC: | jpetso, kde, natalie_clarius, nate |
| Priority: | NOR | Keywords: | qt6 |
| Version First Reported In: | 5.90.0 | ||
| Target Milestone: | --- | ||
| Platform: | Neon | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/powerdevil/-/commit/2a97c14551b4db96a5d976667346c42c5785e365 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | screen recording | ||
|
Description
Patrick Silva
2023-12-08 16:51:12 UTC
Created attachment 164013 [details]
screen recording
We can probably work around the underlying FormLayout / StackLayout issue by having only a single page with controls and making that page handle power profile changes correctly. If my intuition holds, this should not only eliminate flicker but also preserve the scroll position when switching tabs, so it's easier to compare fields for different power profiles. A possibly relevant merge request was started @ https://invent.kde.org/plasma/powerdevil/-/merge_requests/302 Git commit 2a97c14551b4db96a5d976667346c42c5785e365 by Jakob Petsovits. Committed on 05/01/2024 at 19:43. Pushed by jpetso into branch 'master'. kcmodule: Fix flicker when switching between profile tabs This commit is not tackling whatever root cause might be causing the flickering (likely related to delayed layouting in FormLayout). Instead, we resolve the flicker by reusing the same single form for all tabs. So we don't switch between different sets of controls, but we merely reassign values for the one remaining set of controls. On the implementation side, the main thing that's required is a new Connections object with onProfileSettingsChanged() handler, to call the same reset logic that some components already use for handling change signals of individual properties within profileSettings. Controls that never break property bindings do not need any changes. M +135 -62 kcmodule/profiles/ui/ProfileConfig.qml M +33 -39 kcmodule/profiles/ui/main.qml https://invent.kde.org/plasma/powerdevil/-/commit/2a97c14551b4db96a5d976667346c42c5785e365 |