Commit graph

195 commits

Author SHA1 Message Date
Micah Stanley
48dedcd546 taskpanel/panel: make navbar and statusbar accessible from within fullscreen windows
These changes make the navigation and status bar accessible from within fullscreen applications by allowing the user to tap on the top or tap or drag on the bottom of the screen.

Also, since the top panel is now over top of all fullscreen applications, this moves the action drawer swipe area back into the status bar.

![navandstatusbar](/uploads/29bce14baf957059669689345c909896/navandstatusbar.gif)
2024-11-25 17:30:47 +00:00
Micah Stanley
65c2be29e7 mobileshellstate: update isActionDrawerOpen to use intendedToBeVisible
The drawer was recently updated where it is now technically always is visible. So we need to update the binding for MobileShellState to use drawer.intendedToBeVisible so that it works properly.
2024-11-15 01:19:57 +00:00
Micah Stanley
e4d57d19bc actiondrawer: use action drawer window as the open surface area
Change to use the action drawer window as the open surface area so that we can open the drawer within fullscreen applications.
2024-11-14 03:31:10 +00:00
Micah Stanley
eba6074161 notifications: Implement popup notifications
This merge request implements a more mobile optimized solution for popup notification.
- 

The current controls are:
- Swipe up to move the notification to the notification center.
- Swipe left/right to dismiss the notification entirely.
- If multiple popup notifications are grouped together, tap on the bottom area to view them in a expanded view.

What still needs to be done:
- ~~For notification without a default action, tapping on them should probably open up the associated app.~~ Note: I think I will add this in a separate merge request as it probably should be the case regardless if the notification is a popup
- ~~Swiping down on a notification currently does nothing. Maybe we should map this to a notification action?~~ Note: I have some ideas I will try later, though for now, I will leave this action blank
- ~~The expanded view of notifications should be able to be dismissed by swiping up/down on the top/bottom of the list.~~ Note: Added
- Investigate further into how to remove the current desktop popup notifications.
- ~~Code clean up.~~ Note: The code is at least a bit better

Single popup notification:

![notification_1](/uploads/63d12be6da1dd2676de17940dcadbdfa/notification_1.gif)

Multiple popup notifications:

![notification_2](/uploads/907a14b772f66f46040c28342f4dcf02/notification_2.gif)

Multiple popup notifications in the expanded view:

![notification_3](/uploads/9a7cd09a6bb8a0f7ee70e5bcf7c29c6b/notification_3.gif)

Any feedback would be greatly appreciated.
2024-11-07 16:13:06 +00:00
Devin Lin
2d2b7407a6 startupfeedback: Change to be window based and controlled by a model
This makes the startup feedback more robust, by having instances be controlled by a model which can listen to window changes. Being window based also allows for the close button and gestures to work properly with it, since it will show up in the task switcher as well.

Fixes:
* https://invent.kde.org/plasma/plasma-mobile/-/issues/357
* https://invent.kde.org/plasma/plasma-mobile/-/issues/338
* https://invent.kde.org/plasma/plasma-mobile/-/issues/335 (dark themes now tint the background color)
* https://invent.kde.org/plasma/plasma-mobile/-/issues/330
* https://invent.kde.org/plasma/plasma-mobile/-/issues/30
2024-07-13 16:30:07 +00:00
Devin Lin
2dc7546c3b panel: Fix it not being full-width at a certain width
Sometimes when the screen is wide enough, the panel doesn't extend all the way. Ensure that it does.
2024-06-29 00:41:44 +00:00
Devin Lin
5c53f9b6d2 windowplugin: Add per-screen support for WindowMaximizedTracker
Contributes to #317

This refactor changes WindowMaximizedTracker from being a Singleton, and allows for it to be created in a way such that screens can be filtered out.

This fixes external screens from having their homescreen "zoom out" when an app is maximized on another screen.
2024-06-26 00:44:31 +00:00
Devin Lin
c7c44107a6 panel: Ensure panel is not floating 2023-11-16 23:48:24 -08:00
Devin Lin
0a3b198aa6 panels: Mark panel item status to never take focus away from an active app
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/269 and https://invent.kde.org/plasma/plasma-mobile/-/issues/266
2023-11-15 04:55:13 +00:00
Devin Lin
c094eb7553 panel: Fix panelview binding 2023-10-22 10:53:55 -07:00
Nate Graham
cc50aee72d Remove versioning from PlasmaCore module imports
It's unneeded in Qt6 and can cause subtle issues.
2023-09-05 09:34:49 -06:00
Devin Lin
1963340d4f Switch some uses of IconItem to Kirigami.Icon, and fix some theme porting 2023-07-24 22:24:23 -04:00
Alexey Andreyev
127bbdf653 Port away from PlasmaCore and PlasmaExtras to Kirigami
See also:

https://pointieststick.com/2023/06/14/call-to-action-easy-porting-opportunity-in-plasma/
2023-07-25 01:13:52 +00:00
Devin Lin
25a513d829 panels: Port to plasma-framework changes 2023-06-12 20:49:54 -04:00
Devin Lin
0e4b1da9a1 volumeosd: Extract out singleton so that it's only loaded once in plasmashell 2023-03-19 21:10:49 -07:00
Devin Lin
f25840bfc2 mobileshellstate: Move to DBus API instead of trying to use shared QML context
This also allows us to trigger behaviour from other processes that import mobileshell
2023-03-19 18:32:52 -07:00
Devin Lin
2d1610aaa2 mobileshell: Add constants singleton to reduce dependency on mobileshellstate 2023-03-18 22:06:48 -07:00
Devin Lin
da6e17f3f4 windowplugin: Use standardized way to know whether a window is showing and maximized 2023-03-18 18:48:49 -07:00
Devin Lin
79e99a9cfe shellsettingsplugin: Extract out from mobileshell component 2023-03-18 12:28:28 -07:00
Devin Lin
158af43fd4 audio: Refactor applet and extract singleton to MobileShellState
The eventual goal is to have as few singletons with state as possible in the mobileshell component when it is imported into components such as the lockscreen.

This doesn't fully accomplish it, but moves the audio provider singleton to MobileShellState, which will eventually need to be prevented from importing into non plasmashell processes.

This also disables the sound feedback when changing volume, since it can be a source of lag when showing the applet.
2023-03-16 07:21:01 +00:00
Devin Lin
ad8f7cf99c Fix accidental commenting 2023-03-02 22:11:51 -08:00
Devin Lin
f0c756214a Port QtGraphicalEffects 2023-03-03 06:01:23 +00:00
Devin Lin
7d3bf39750 mobileshell: Refactor and extract state to mobileshellstate plugin
This avoids mixing plasmashell state with our MobileShell component library (which really shouldn't have state at all).
2022-11-12 11:15:36 -05:00
Devin Lin
1830b9dd2a quicksettings/donotdisturb: Move do not disturb button to quick setting 2022-09-10 12:41:08 -04:00
Devin Lin
775db10f9b panel: Don't draw plasmoid background 2022-07-27 17:48:10 -04:00
Devin Lin
824a9f33ed homescreens/halcyon: Two column layout, and refactor 2022-06-28 00:43:40 -04:00
Devin Lin
f7c6f6d30f panel: Enforce panel thickness 2022-06-27 18:08:42 -04:00
Devin Lin
a607fc2600 panel & taskpanel: Only opaque if windows are maximized 2022-06-27 14:52:16 -04:00
Devin Lin
57192b772b actiondrawer: Add restricted permission mode, and implement on lockscreen 2022-04-07 14:11:08 -04:00
Devin Lin
3488d2b0f3 panel & taskpanel: Fix panel colour on homescreen when shell windows are open
Fixes #161
2022-04-06 21:18:47 -04:00
Devin Lin
9941c23752 quicksettings: Move all quick settings to kpackage 2022-03-16 23:20:51 -04:00
Devin Lin
dca8064ca2 actiondrawer: Use passed in notifications model and settings 2022-02-11 17:50:17 -05:00
Devin Lin
906c169f26 startupnotifier: Import and integrate into homescreen for performance 2021-12-29 00:08:32 -05:00
Devin Lin
6653ad6e54 panel: Refactor panel and implement blue ocean mockups 2021-12-22 23:29:00 +00:00
Devin Lin
25e0f99f43 homescreen: Add swipe down panel gesture 2021-10-28 21:54:52 -04:00
Aleix Pol
0cd4f91ec4 Port away from PlasmaComponents 2.0 on most places 2021-10-22 16:34:03 +00:00
Devin Lin
e168b2bdb6 panel: Fix quicksetting delegate width not getting enforced on label 2021-10-18 14:56:43 +00:00
Devin Lin
7df05e09be panel: Rework panel layout, and refactoring 2021-10-12 13:50:36 +00:00
Aleix Pol
8335934aef As an acronym, SIM should be upper-case
It stands for Subscriber Identity Module
2021-09-29 01:01:39 +02:00
Aleix Pol
d238aa3031 Do not show "Sim Locked" when there's no SIM card
Fixes https://invent.kde.org/plasma/plasma-phone-components/-/issues/115
2021-09-29 01:01:39 +02:00
Aleix Pol
43f2f293cf Revert "phonepanel: Keep the Quick Settings buttons the same size"
This reverts commit c4903c25b9.
2021-09-27 14:01:08 -04:00
Aleix Pol
c4903c25b9 phonepanel: Keep the Quick Settings buttons the same size
Instead of doing weird UI puzzles, just let them elide their text. This
solves binding loops and makes the look overall more predictable.
2021-09-16 10:27:45 +00:00
Tobias Fella
89dbff8995 Port signal strength indicator to ModemManager 2021-09-15 16:19:47 +00:00
Aleix Pol
4bba6ac402 units -> PlasmaCore.Units 2021-09-13 18:59:35 +02:00
Aleix Pol
4a52d8b791 Open KScreen KCM on auto-rotate long press 2021-09-10 02:40:53 +02:00
Aleix Pol
31448728b8 Make the phoneshell a bit more flexible
Use plasma-open-settings to open configs instead of directly
plasma-settings.

This way we're less dependent on specific set up.
2021-08-31 17:23:20 +02:00
Aleix Pol
5dd617f289 It's called Wi-Fi
According to https://www.wi-fi.org/
2021-08-30 17:53:48 +02:00
Aleix Pol
9a0d71fcf1 Fix top panel on dark themes
Use PlasmaCore.IconItem rather than Kirigami.Icon
2021-08-30 00:07:24 +00:00
Aleix Pol
9dfac82863 Move the Battery settings with its provider
And make use of it to show if it's plugged or not
2021-07-21 13:36:43 +00:00
Aleix Pol
dd888a707f Make it possible for QuickSettings to be created in a KPackage
Move the NightColor one into a KPackage to prove it
2021-07-21 13:36:43 +00:00