Draft: Global Theme KCM Redesign
This merge request redesigns Global Theme, and makes reuse of some existing seemingly unused code in the KCM. The redesign is largely based off @ngraham's design ideas, as well as some of my own, subject to change as per VDG feedback.
Highlights of this redesign include:
- Kirigami sheet for choosing what is applied
- The 'roles' code is now made use of for the above
- New roles, and fixes to existing roles
- Desktop Layout can now be applied separately without applying the whole Global Theme
This merge request is not yet complete, hence the 'Draft' title, as there are numerous issues that need to be knocked out of this before it can be considered ready for merging, as well as some stuff left to do in the MR, such as:
- TODO: lookandfeeltool update
- Figure out what we want the Sheet/Popup to be triggered by
- Potential code cleaning?
- All the other FIXMEs and TODOs added via this MR's changes
- Change "More Options" disabling to be dependant on if all the checkboxes in the page are disabled, not just "Apply appearance settings from theme"
- Fix click-through area on the Kirigami sheet's footer area
Other Notes and bugs to squash:
- The sheet being activated by clicking a thumbnail is NOT FINAL - it's just a temporary trigger for debugging purposes until either the VDG decides it's better to have it triggered by theme selecting itself, or until someone figures out mapping the Apply button to triggering it.
- (bug) Lock Screen changing seems to currently be bugged upstream (doesn't actually set the value in kscreenlocker) and so applying a Global Theme with lock screen setting turned off will just apply the lock screen anyway
- Switching between More and Less Options will reset the checkbox states - this is intentional as not resetting the checkboxes during the switch between these views will allow the Global Theme checkbox to become inconsistent with the More Options checkboxes
- Desktop Layout's checkbox is cloned into More Options for the above reason
- I made a More Options section because the abundance of checkboxes being on the main dialog instead might be confusing for users.