Prevent `TextArea` in SelectableLabel from accepting wheel
events when the notification item is in FullRepresentation,
and pass wheel events to `ListView` in FullRepresentation when the
cursor is over the `TextArea`.
BUG: 443840
FIXED-IN: 5.24
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
It's wrong to check the status of the plasmoid before closing it,
since the status is just the internal state of the plasmoid and
it's changed by actions from the plasmoid itself. So, the Passive
status doesn't indicate that the plasmoid is hidden in the system
tray, because the user can configure to always show this plasmoid.
This reverts commit 5893574163.
The approach taken in this commit was sub-optimal and not consistent
with what we do for other applets, so it needs to be re-thought.
The fact that the commonly-used "Clear History" action appears in a
hamburger menu has been a common user complaint about Plasma 5.21.
This happens because it's defined as an action, and the applet has two
actions ("clear history" and "open KCM") and when there is more than
one action, they all go into a hamburger menu. This makes the
commonly-used clear action more difficult to find that necessary.
A reasonable long-term solution would be to refactor the action
visibility code in plasma-framework to allow the display of more than
one action in the header without always putting them all in a hamburger
menu, or allowing the developer more control over this. However since
that would require frameworks changes, it can't be done in Plasma 5.22
because 5.22 requires Frameworks 5.82 which has already been tagged. So
let's do this simpler fix for now to fix the UX regression.
BUG: 433140
FIXED-IN: 5.22
This allows a client to mark a notification as "resident" which means it will
not be closed by the sever when expired or an action is invoked, thus transferring
full control over notification life time to the client.
A notification popup still times out as normal (unless persistent, of course)
but the notification remains alive until the client revokes it or a user
explicitly closes it.
It is opt-in so that a client can expect the notification lifetime to be
indefinite and explicitly close it when an action is invoked on its end.
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done`
Qt 5.15 introduced new syntax for defining Connections. Fix warnings like this one:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
the comboboix of a very rarely used feature right
in the header area is super noisy, looks misaligned and puts the feature
in a too much prominent role.
Put everything under a popup menu, mustually exclusive actions will be
shown as radiobuttons
This begins the process of porting plasma-workspace to PlasmaComponents3. At
this point, only the relatively easy work is done. Every file not ported
now has been given the reason for still using PC2 in a comment on the import
line so you can see at a glance what the blocker is by running
`grep -r "org.kde.plasma.components 2.0"` in the repo.
Everything is tested and there are no breakages or functional regressions. In
the process, a few unused imports are removed.
Here are the remaining PC3 omissions blocking what's left from getting easily
ported:
- No Highlight
- No ListItem
- No PageStack
- No ContextMenu
- No QueryDialog
- No ModelContextMenu
- TabBar has no left and right tab states
- ToolButton has no built-in method to show a menu when clicked
Summary: This hides the plasmoidHeading on history for not grouped notifications
Test Plan:
After:
{F8288756}
Reviewers: broulik, ngraham
Reviewed By: broulik, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Maniphest Tasks: T10470
Differential Revision: https://phabricator.kde.org/D29474
When setting "until turned off" it effectively sets it to today in a year. Now with leap year this appears to have broken.
Instead, just use 100 days, which is plenty, even if we come up with a "for 1 month" option maybe.
Differential Revision: https://phabricator.kde.org/D28740
Summary:
The Clipboard and Notifications applets live in plasma-workspace; port them to use
Kirigami.PlaceholderMessage
Test Plan:
Clipboard: {F8253980}
Notifications: {F8253981}
Reviewers: #vdg, #plasma, broulik, niccolove, cblack
Reviewed By: #vdg, #plasma, niccolove, cblack
Subscribers: plasma-devel
Tags: #plasma
Maniphest Tasks: T13021
Differential Revision: https://phabricator.kde.org/D29109
Summary:
As per D28575, converted the FullRepr to be a Page and added a PlasmoidHeading
Result:
{F8215954}
Depends on D28575
Test Plan: Test with D28575
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: ngraham, plasma-devel
Tags: #plasma
Maniphest Tasks: T10470
Differential Revision: https://phabricator.kde.org/D28576
Summary: With other two patches, this aims to make leftMargin consistent in widgets (See https://phabricator.kde.org/D26945 and https://phabricator.kde.org/D26944)
Test Plan:
System tray
Before:
{F7977382}
After:
{F7977379}
Notifications
Before:
{F7977359}
After:
{F7977357}
Battery monitor
Before:
{F7977362}
After:
{F7977361}
Self reminder: networkmanager is still slightly badly aligned
Reviewers: #vdg, #plasma, ngraham
Reviewed By: #vdg, ngraham
Subscribers: gvgeo, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26946
Summary:
We use this centered style in many other places and are moving towards using it
everywhere. This patch applies the same style to the System Tray popups for
notifications and devices, which were still using the old style.
Test Plan:
Notifications, before: {F8090822}
Notifications, after: {F8090777}
Device Notifier: before: {F8090825}
Device Notifier, after: {F8090776}
Reviewers: #vdg, #plasma, ndavis
Reviewed By: #vdg, ndavis
Subscribers: davidedmundson, ndavis, trmdi, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27219
It is only attached to the delegate item itself.
Broke when it got shuffled around when swiping got added.
Differential Revision: https://phabricator.kde.org/D26422
When a plasmoid collapses in Active state, the popup is hidden.
In Passive state, however, one is returned to the hidden items list, as it cannot tell whether
the plasmoid collapsed on its own or because the user clicked the same one in the hidden items list again.
When we clear notifications, plasmoid state updates immediately as a result of model signals,
and when we then try to collapse the plasmoid we're already hidden and just returned to the hidden items list.
This patch addresses this by delaying the state change slightly.
Futhermore, don't collapse the plasmoid when already hidden as that would just return the user to the hidden items list.
Differential Revision: https://phabricator.kde.org/D26091
When Plasma notification service isn't available or provided by someone else, disable the plasmoid.
Do not disturb controls are disabled and the applet stays in the popup crossed out.
Effectively D25097 of plasma-desktop for the applet itself.
Differential Revision: https://phabricator.kde.org/D25917
There's something really funky going on in this...
Avoid using ViewTransition attached property be just setting the animation target before triggering the model removal.
BUG: 414066
Differential Revision: https://phabricator.kde.org/D25861
Summary:
{F7665577}
Keep it as before on the desktop to be consistent with the other plasmoids
Test Plan: run plasmashell with/without QT_QUICK_CONTROLS_MOBILE
Reviewers: #plasma, #vdg, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, KonqiDragon, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D24934
Summary:
some optimizations for tablet mode (touch first, but also on
transformable laptops flipped to tablet)
and some for specifically the mobile case (mobile phone)
* hide the top toolbar in phone mode
* in tablet mode (and therefore on phone mode too) don't select text but drag the item laterally to dismiss it
Test Plan:
* on phone form factor for the new behavior
* on touch laptop in tablet mode
* on desktop for its behavior not changing at all
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: nicolasfella, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D24765
This makes it group notifications of different "origins" not group together,
e.g. FooApp notifications from phone A won't be grouped together with FooApp notifications from phone B.
Also, email notifications from different accounts wouldn't be grouped together.
Finally, show the origin in the grouped header.
Differential Revision: https://phabricator.kde.org/D23583
When two screens overlap during e.g. a presentation, automatically enable do not disturb mode.
As per usual with automatic do not disturb, it can be overruled by unchecking the checkbox in the notification plasmoid
where it will be disabled until the screen configuration changes again and it still find a mirrored screen setup.
Differential Revision: https://phabricator.kde.org/D22856
When a new notification comes in, we first displace the existing ones to make room and then animate in the new one.
However, due to the PauseAnimation the item appears with its full opacity ontop of the existing notifications that move out of the way.
Add a PropertyAction to ensure the item has an opacity of zero initially.
Differential Revision: https://phabricator.kde.org/D22760
This makes it consistent with the configure button of the items in the list below.
BUG: 409140
FIXED-IN: 5.16.2
Differential Revision: https://phabricator.kde.org/D22075