Refactor panel and implement blue ocean mockups
This MR does several things:
Extract panel components into the mobileshell component
Each of the components of the panel containment have been moved to the
mobileshell component, and so they can be imported with
org.kde.plasma.private.mobileshell in the containment, as well as the lockscreen.
My intention is to have any future components that are meant to be shared in the shell to be there.
The panel code has been simplified a lot and cleaned up to make it easier to understand and maintain. Each of the components were also split up. The pull-down drawer is now referred to as the
actiondrawer, and contains the code specifically for that, as well as the quicksettings panel within the drawer.
dataproviders are singletons that provide the necessary data for things like indicators, as well as providing system functions like the volume osd and shortcuts.
statusbar refers to the top panel with indicators that are always visible.
QuickSettings were also moved from the
homescreencomponents package to the
Add embeddable widgets
Since using the desktop applets isn't feasible on the lockscreen, and we needed a more mobile friendly interface for the widgets anyway, the notifications and media control applets were replaced by embeddable widgets (
widgets folder in mobileshell).
Implement blue ocean mockups for panel
The expanded view was changed to be more detailed, with a new quicksettings field called
status that can allow quicksettings to provide more information. The notifications and media widget were reworked, as stated above. The landscape orientation view was also reworked, to have the quicksettings become a side panel.
Addresses: https://invent.kde.org/plasma/plasma-phone-components/-/issues/117 https://invent.kde.org/plasma/plasma-phone-components/-/issues/119 https://invent.kde.org/plasma/plasma-phone-components/-/issues/107 https://invent.kde.org/plasma/plasma-phone-components/-/issues/92 https://invent.kde.org/plasma/plasma-phone-components/-/issues/78
Finalize panel UI design
Finalize panel opening/closing UX design
Embed panel into lockscreen
Implement media widget
Add landscape view
Implement notifications list
Extract Thumbnail components from notification applet