Commit graph

124 commits

Author SHA1 Message Date
Kunda Ki
7f3dcab42b Fix various typos
Fixes typos in various source comments.  
Found via `codespell -S "*.po,*.svg,*.pgm,*.xml,./po,*.desktop,*.json,*.actions" -L aline,aparent,childs,distroname,indexin,indx,logicaly,lokal,nd,splitted,te`
2025-09-05 12:21:15 +00:00
Devin Lin
bc3e80c479 mobileshell: Manually specify QML files, and private some internal files
The globbing pattern for finding QML files is problematic because it
breaks when we add/delete a file (requiring us to delete
~/kde/build/plasma-mobile). It also placed every file (both public and
internal files) in the same flat namespace, carrying the risk of name
collisions between unrelated folders.

This commit manually specifies every file in the package. It also moves internal files in the actiondrawer folder into its own namespace. Followup MRs will do this process for other folders.
2025-07-18 11:01:26 -04:00
Devin Lin
147e949ee7 actiondrawer: Fix color detection
PanelBackground supplies color through the `panelColor` property, not
`color`.
2025-06-28 10:48:26 -04:00
Micah Stanley
7e2019cb0e MobileShell: Unify Item Background Elements
We so far have been recreating the background elements for all the item throughout the shell. This merge request simplifies this by unifying these elements into a single component, making is easier to keep things at a consistent design while also being able to adjust things when needed in the future.

Per request, I tried to keep thing looking mostly the same as before.

The first picture is what the action drawer looks like now, the one after is with these changes.

![Screenshot_20250621_154201](/uploads/7bd5129d942c8fbc3706dd1728b3a1dd/Screenshot_20250621_154201.png)
![Screenshot_20250621_155520](/uploads/9d2e925c9483579dec765813465e4d2d/Screenshot_20250621_155520.png)
2025-06-22 20:16:16 -04:00
Micah Stanley
775d612d3e ActionDrawer: Fix Panel Opacity when Brightness is Adjusted
This merge request moves the location where the action drawer panel opacity gets set to the top of the background item stack to resolve an issue with the opacity not changing properly when the brightness is adjusted.
2025-06-18 17:02:12 -04:00
Devin Lin
19ea9f5164 actiondrawer: Draw our own background
Draw our own background in the action drawer instead of using the svg, because it loads faster when visible: true/false is set, and we do a bunch of resizing animations.
2025-06-17 18:00:41 -04:00
Florian RICHER
6a869007fc Load minimized Quicksettings as Async 2025-06-16 15:16:03 -04:00
Micah Stanley
8c45aba84d actiondrawer: notification scroll bugfix 2025-04-17 18:16:21 +00:00
Micah Stanley
8065a98113 ActionDrawer/BrightnessItem: Brightness Slider Animation Adjustments
Brightness slider animation adjustments.
2025-03-22 20:36:31 +00:00
Micah Stanley
d9495bc714 actiondrawer: fix swipearea references 2025-03-22 19:13:27 +00:00
Micah Stanley
e4323f4ef0 notification list: fix notification scrolling within action drawer and lockscreen
This merge request fixes an issue with notification list scrolling and also adds a few general improvements.

To accomplish this, the notification widget was moved outside of the action drawer swipe area and lock screen swipe area, separating them from the parent-child relationship. Instead, the notification widget is now layered separately on top. This change seems to fix the conflict when both areas are accepting swipes from the same direction.

Additionally, changes were made to the notification list widget for the action drawer to make it behave similarly to the folio home screen app library. Specifically, when at the top of the list, one can swipe down over the notification area to expand the action drawer. In landscape mode, the media widget, clock, and date were also added to the notification list to provide more room for viewing notifications when scrolling.

Closes https://invent.kde.org/plasma/plasma-mobile/-/issues/318
2025-03-20 02:06:33 +00:00
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
7245080b22 actiondrawer: hide action drawer while adjusting screen brightness
This change hides the action drawer while adjusting the screen brightness so that one can see the content behind it.
2024-11-14 03:34:01 +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
Devin Lin
238cf4948b actioncenter: Allow expanded mode to be opened as soon as minimized offset crossed
Currently the user can only expand to the expanded state after the initial minimized animation finishes. This animation gets reset as soon as a finger is pressed down, causing the user to have to wait until the animation completely finishes before being able to go to the expanded state.

Bypass the need to wait for the animation to finish by setting the open state immediately if the offset already is past the minimized threshold.
2024-11-12 00:25:33 -08:00
Devin Lin
abfe419b3b screenbrightnessplugin: Fix behaviour if dbus service is not initialized
If the dbus service gets initialized later, ensure that the latest values are being fetched.
2024-11-10 21:57:17 -08:00
Devin Lin
f3dc108602 actiondrawer: Use layershell to avoid taking focus from current window
We can use layershell to avoid taking focus from the current window,
which avoids any unnecessary behavior from an unfocus event.
2024-11-07 20:06:22 -08:00
Devin Lin
4a86ad8c06 actiondrawer: Cleanup and simplify
Make sure that the view colorset is correct, remove unnecessary layer
(clip is enabled), and remove unnecessary visibility hack for the
notifications widget.
2024-11-05 03:42:25 +00:00
Devin Lin
76882f5b5d actiondrawer: Share components between portrait and landscape
This avoids having to completely load the quicksettings, status bar,
media widget, and notifications list from scratch when the view changes.
We now have a single instance of each component which is reparented to
the new view (portrait/landscape).

Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/406
2024-10-31 15:27:00 +00:00
Devin Lin
35b1128d1d actioncenter: Reduce usage of transforms and cleanup
Simplify positioning of some components by avoiding transforms and using
simple anchors to improve performance. Also cleanup unused properties.
2024-10-31 00:48:36 +00:00
Sebastian Kügler
2b822e8c6a [mobileshell]: apply scale factor to status bar
This change allows scaling of the statusbar (the top panel).

As we have to accommodate for a wide variety of devices with different
physical pixel sizes, we need a way to scale the top panel / status bar.
This change introduces a config value (in plasmamobilerc, such as other
shell settings) that controls this size.

For example (plasmamobilerc):

[General]
statusBarScaleFactor=1.5

(Config UI in kcm mobileshell in separate patch)

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2024-10-25 17:53:25 +00:00
User8395
889c085c21 quicksettings: fix landscape not being scrollable
Currently, Quick Settings in landscape mode is not scrollable, due to issues with `scrollViewComponent`. This causes some buttons to become unseen in landscape mode but not portrait. This has been solved by deleting `scrollViewComponent` and replacing it with `swipeViewComponent`, to allow swiping to access other buttons in Quick Settings.

Before (docked mode and hotspot are missing):

![screen-recording__1_](/uploads/e0c4eaf22a2ec401c66e9e513e8ce7e1/screen-recording__1_.webm)

After (docked mode and hotspot are there):

![screen-recording](/uploads/404ebbecc87e1b60b2501b81b8ab83ee/screen-recording.webm)

However, with this setup, `resetSwipeView()` doesn't work, and Quick Settings remains at the page it was left at.
2024-10-25 17:02:30 +00:00
Devin Lin
c7e5003596 screenbrightnessplugin: Extract from initialstart and use in shell
This is partially an emergency fix also for
https://invent.kde.org/plasma/plasma-mobile/-/issues/404, which was
potentially introduced by https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/582

This MR extracts the screen brightness implementation from initialstart
to a QML plugin, and also ports the action drawer brightness slider
implementation to it. This avoids importing the powerdevil screen
brightness plugin on the lockscreen, which apparently has a race
condition that causes it to sometimes segfault.
2024-10-08 22:47:30 -07:00
Florian RICHER
a6a16507c3 quicksettings: Fix brightness slider
Status:

- Tested on my OP6 with PostmarketOS edge. (Pmbootstrap build + sideload)

Fix issue https://invent.kde.org/teams/plasma-mobile/issues/-/issues/306
2024-09-29 22:24:58 +00:00
Devin Lin
3adcd1d51c swipearea: Add support for touchpad
This adds support for touchpad scrolling in various shell components, such as the lockscreen, homescreen and action drawer.

Currently TODO because it appears to be very buggy when there is a control underneath that also accepts touchpad input (ex. flickable). The touchpad scroll start appears to get called by Qt, but not the end event, so I am unable to "let go" of the flick. Not sure if it's a wayland issue.

This also appears to not work in the nested KWin session, not sure if it's because of libinput or something
2024-08-01 01:53:52 +00:00
Micah Stanley
e0dd65fa26 Notifications and Media Control Design Adjustments
Adjusted the colors of the notifications and media controls to help them fit in better together.

![Screenshot_20240729_045620](/uploads/4190227795db932ebead005c67510b45/Screenshot_20240729_045620.png)

![Screenshot_20240729_045637](/uploads/feb63760194ccc671d80c4279ab7b526/Screenshot_20240729_045637.png)
2024-08-01 01:18:33 +00:00
Micah Stanley
d42d36129d widgets/mediacontrols: Fix usage in action drawer and height animation
Fixes an issue where if the media controls were active and the action drawer was flicked opened, sometimes it would not fully open.

Changes include:
1. Media controls will now no longer animate its height if `implicitHeight` is 0
2. The action drawer animation code was reworked to allow its height to change dynamically.
2024-07-31 14:16:13 +00:00
Devin Lin
20efd102f3 actioncenter: Ensure window gets raised over status bar
Potential fix for #358, haven't yet verified on device
2024-07-29 21:08:54 +00:00
Devin Lin
8ca80841d2 actiondrawer: Share quick settings model between landscape and portrait
Don't recreate the quick settings model when switching between landscape
and portrait. This should improve the performance of screen rotation.
2024-07-27 11:02:48 -04:00
Devin Lin
eb9509ce68 Remove trailing whitespace 2024-07-26 23:47:44 -04:00
Devin Lin
7f011e92ed quicksettings: Use standard corner radius 2024-07-15 18:45:33 -04: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
Mr. Athozus
49a3579c55 Use marquee label for quicksettings titles 2024-06-29 20:35:42 +00:00
Devin Lin
acde5b389d lockscreen: Dynamically load status bar and action drawer as needed for performance
Currently the lockscreen takes 5 seconds to load for me on the OnePlus 6. This MR moves the quicksettings and status bar to only load once the initial lockscreen has loaded (to avoid blocking it). This brings it down the initial load to 1 second for me.
2024-06-29 20:29:06 +00:00
Devin Lin
e2e6590222 startupfeedback: Add support for multiple screens
Addresses https://invent.kde.org/plasma/plasma-mobile/-/issues/175
2024-06-23 16:48:32 +00:00
Micah Stanley
600fd05900 actiondrawer: Added the Over-Scroll Effect to all Portrait Mode Quick Settings States
Brought the over-scroll effect found in the pinned quick settings panel to all the portrait mode quick settings states.
This helps improve the user experience while also bringing more consistency when pulling down the panel.

![over-scroll](/uploads/a8531b6fb51fde6fc7dc9c9647945899/over-scroll.gif)
2024-06-22 04:50:09 +00:00
Marius P
17e92e72fc Proofreading 2024-06-17 00:02:08 +03:00
Fushan Wen
f3f66a5d07 quicksettings: port BrightnessItem away from dataengine 2024-03-03 16:15:01 +00:00
Devin Lin
83ce339cda components/hapticsplugin: Introduce direct haptics API for hfd-service
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/270

Introduce a direct haptics API for now for shell usage, and port to it. Also remove the vibration intensity setting as that didn't do anything.
2023-11-15 08:13:25 -08:00
ivan tkachenko
22f7d490ba
Revert "Port away from PlasmaCore and PlasmaExtras to Kirigami"
This (partially) reverts commit 127bbdf653.

Only incorrect changes from Kirigami.Units.largeSpacing to
Kirigami.Units.gridUnit are reverted. Only Plasma.Units were buggy.
2023-11-08 21:16:19 +03:00
Yari Polla
4f45654af6 Port mobileshell plugins to ecm_add_qml_module 2023-11-02 11:08:17 +00:00
Devin Lin
552ab53b49 components: Add SwipeArea filter modes 2023-09-30 10:06:41 -07:00
Devin Lin
911d41e5ce actiondrawer: Port from Flickable to SwipeArea 2023-09-29 22:57:24 -07:00
Devin Lin
7e012fc49a porting: Port away from PlasmaCore colors 2023-09-26 21:21:06 -07:00
Devin Lin
27e63a167d porting: Finish ksvg port 2023-09-26 21:18:39 -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
Marco Martin
42cccf8e7f port to Kirigami.Icon
Part of https://invent.kde.org/plasma/plasma-workspace/-/issues/82

PlasmaCore.IconItem will be removed; now only the kirigami icon
should be used.
2023-08-18 09:08:07 +00:00
Devin Lin
2801ad2d8e actiondrawer: Use proper units and adjust sizing 2023-07-24 22:46:50 -04: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