Skip to content

kcmodule/profiles: QML port of the "Energy Saving" KCM

Spiritual successor to MR !66 (closed) by @tcanabrava, but based on a more recent master and earlier MRs from #23 (closed). Thanks to @nicolasfella's reviewing work, the KConfigXT port of profile data landed in master via !249 (merged). This MR builds on the newly available KConfigXT classes to recreate kcm_powerdevilprofilesconfig a.k.a. "Energy Saving" in QML.

Functionality-wise I believe this new QML KCM covers the entire functionality that's exposed by the current QWidgets-based KCM. I revamped the UI a little, but without going crazy with redesign ideas from #10. That said, it's still much (much) tidier than the old UI, using a blend of ideas from !66 (closed) and #10 plus some extra polish. I hope you like it.

The primary goals of this MR are "preservation of current functionality", "modest usability improvements without regressions" and "getting it merged before Plasma 6 feature freeze". If some stuff is arguably worse than it was in the QWidget-based UI, we should imho abstain from including it here and go with whatever the old UI did. Non-goals are "organizing by category instead of power state", "merging with global config UI for a single KCM" and "introducing controversial new functionality".

I'll post some before/after screenshots in a comment below. Quick summary of this commit:

  • Add SleepModeModel and PowerProfileModel
  • Add ProfilesConfigKCM.{h,cpp} for the C++ backend KQuickManagedConfigModule
  • Rebuild UI in QML, with the main tab contents in ProfileConfig.qml

CC @nicolasfella, @ngraham, @nclarius, @abetts as I know you're going to have lots of fun with this.

BUG: 460422 BUG: 452760 BUG: 408882 BUG: 460002 BUG: 456956 BUG: 441482 BUG: 436151 BUG: 436817 BUG: 403489 FIXED-IN: 6.0

Edited by Nate Graham

Merge request reports