Commit graph

20 commits

Author SHA1 Message Date
aa4103f72a Add null guards in QuickSettingsDelegate and convergentwindows
Check restrictedPermissions before opening the detail popup in
convergence mode. Guard against null output in the KWin script
window-setup handler to prevent TypeError when a window has no
assigned output yet.
2026-04-18 20:24:28 +02:00
9b94c200ee Fix action drawer toolButtons ref and page indicator sync
NotificationDrawer referenced toolButtons, a sibling defined in
ContentContainer, not a local property. Add toolButtonsItem: Item
and wire it at the call site. Replace the magic literal 10 with
Kirigami.Units.largeSpacing while here.

The PageIndicator had a one-way binding to swipeView.currentIndex
that would break after a user tap. Make it bidirectional with a
Connections block and a loop guard on both sides.
2026-04-18 19:04:49 +02:00
c2b864d8b4 Show action drawer as bounded panel in convergence
Replace the full-screen slide-down sheet with two fade-in cards
anchored to the top corners. Quick settings sit top-right,
notifications top-left capped at 60% screen height. Background
scrim reduced to 30%. Redundant clock header and status bar
hidden since both are already visible in the top panel.
2026-04-16 17:42:06 +02:00
2a137d1ac9 Promote management tiles to status rows in convergence
Wi-Fi, Bluetooth, Sound and Battery behave differently from
toggle tiles: tapping them should open a detail panel, not
flip a switch. On a phone the long-press convention handles
this, but with a mouse long-press is unnatural.

Pull these four tiles out of the grid when convergence mode
is active and show them as full-width rows above the remaining
tiles. Each row has two click zones — a toggle pill on the
left that still switches the service on/off, and a detail
area on the right (name, status, chevron) that opens the
Plasma applet popup. The grid hides the duplicates so they
only appear once.
2026-04-16 13:41:24 +02:00
8017e4eaa0 Show applet popup on tile long-press in convergence
Long-pressing a mapped quick-settings tile in convergence
mode opens a floating popup with the Plasma applet UI
instead of launching System Settings. Unmapped tiles still
open Settings.

AppletHost creates a standalone Corona to host applets
outside the shell containment tree.
2026-04-15 14:58:25 +02:00
b77bf41cdc Fix action drawer not opening on click in convergence
open() alone does not set intendedToBeVisible, so the drawer
immediately closes itself. Call the proper toggle path instead.
Also hide the drag handle since convergence users click.
2026-04-15 14:58:15 +02:00
d8f9924c73 Widen quick settings panel in convergence mode
Use up to 45% of screen width so more tiles are visible
without pagination. Tile size stays touch-friendly.
2026-04-15 11:58:08 +02:00
cf5fb25bae Make quick settings page indicator clickable
The page dots were non-interactive so clicks fell through to the
swipe area and closed the drawer. Set interactive:true and sync
the index back to the SwipeView so clicking a dot switches pages.
2026-04-09 11:43:59 +02:00
e12e6b3a66 Add system tray to status bar in convergence mode
Reintroduce StatusNotifierModel-based system tray icons, gated on
convergenceModeEnabled. Desktop apps (KDE Connect, nm-applet, etc.)
expose tray icons that were removed in 1914e9be as unusable on
phone screens.

The status bar wrapper is raised above the ActionDrawerOpenSurface
so tray icon MouseAreas receive click events while non-interactive
areas still fall through to the swipe handler.

TaskWidget.qml supports left-click (Activate), right-click
(ContextMenu), hover tooltip, and hides Passive/ApplicationStatus
items. The lockscreen SIGABRT guard (disableSystemTray) is restored
on the action drawer's StatusBar instance.
2026-04-08 20:12:16 +02:00
Devin Lin
a8b858dc3e Remove kirigami version in imports
This fixes potential issues stemming from pinning versions on Kirigami
qml api imports
2026-03-06 22:08:07 -05:00
Devin Lin
c4c7f5b195 actiondrawer: Fix loading race conditions with minimized quick settings
This reverts https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/739 and avoids using loaders to load the quick settings. This otherwise leads to problems where the delegate could get half loaded and not receive model properties, due to ContentContainer also being a loader.

Fixes: https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/739
2026-02-20 10:53:30 -05:00
Devin Lin
5f5ac2d435 quicksettings: Fix references to non existent "mode" property
This was removed when we changed the QuickSettingsPanel to use a SwipeView rather than a scrolling list. Fix remaining references to it.
2026-02-15 10:00:47 -05:00
Devin Lin
1914e9be44 statusbar: Remove system tray
The system tray has not been useful on mobile and isn't particularly
interactable due to its small size. Remove the system tray from the
status bar, if we need its functionality it would be more appropriate to
create a larger "tray UI" in the quicksettings area
2026-02-06 19:19:02 -05:00
Devin Lin
6c0898fab2 notifications: Fix timestamp not working
Fix notification timestamps not working and always showing "now",
fallout from https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/847
2025-11-24 23:38:57 -05:00
Bohdan Onofriichuk
b0b7a92808 components/mobileshell: port from the clock dataengine 2025-11-15 12:14:44 +02:00
Devin Lin
e196a91c8b actiondrawer: Use contextually correct colors and dark background at all times
This commit changes the action drawer colorsets to be contextually correct. The panel background would use the window background colors (instead of the view ones), and quicksettings delegates would use colors from the Button color set (rather than the view).

This also changes the background scrim to always be dark even in light mode. I think this is important to do because we have two views (notifications, and quick settings), which currently don't have much in the way of colours to distinguish the two. 

This commit also makes some changes to the notifications widget in order for its card foreground to be the standard theme colors.

![image](/uploads/b4e42984da926bc266d6c53d59a323b7/image.png){width=200}
![image](/uploads/4dc71502cdf85b5cbf6a2497a2384939/image.png){width=200}
![image](/uploads/ebd2d57ed46161ec8bb240a36c7069e7/image.png){width=300}

![image](/uploads/99656ee4cc322ee7412d7aef1c696893/image.png){width=200}
![image](/uploads/c0521a64069077fbe7e44b23159227e7/image.png){width=200}
![image](/uploads/6567a1bf42092d914a56d03ac5d7be54/image.png){width=300}
2025-09-18 09:29:53 -04:00
Sebastian Kügler
a3723c7e7b implement configurable column number in quicksettings panel
This changeset makes the shell respect the quickSettingsColumns mobile
shell setting. It renders the number of columns correctly and makes the
drawer wider, as needed.

As a side-effect, the width is now more dpi-independant since it
switches from raw pixel values to gridUnit.
Another side effect is that we make the individual quicksettings buttons
ever so slightly wider (5.333 gridUnits before, gridUnits now).

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-09-15 19:46:12 +02:00
Devin Lin
674c5034ae animations: Use Kirigami units and speed up several of them
This converts many of the animation durations to Kirigami units so that
they can be controlled system wide. It also speeds up several of the
animation durations (ex. in folio) from 800ms to 400ms to improve the
feel and responsiveness of the shell.
2025-09-12 05:41:20 -04:00
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