* Make dataengines work fully standalone
* Fix panel icon sizing
There's still an issue with the popup size when resizing the vertical panel smaller so it collapses
* Implement keyboard navigation for the list with focus hacks...
Delete key closes notifications or groups, Arrow left/right expand/collapse groups, Enter invokes default action, if any
* Fix DND times that are supposed to be hidden showing
ModelContextMenu doesn't respect "visible" property
* Move "Notifications" header to ListView header so it scrolls away and leaves more room for the notifications in systray popup
* Fix finished jobs in history showing as failed when app is closed
* Don't remember apps that spawned jobs, only for notifications
* Use CriticalNotification window type (patches pending)
* Ship some more default rules in plasmanotifyrc
* Improved do not disturb menu (add "for 4 hours" and "until disabled")
* Expand unread notifications by default, overall improved expansion/collapse handling
* Show unread count in panel and reset when plasmoid is closed again
* Move notification sanitizer and its test from dataengine to lib
* Load pixmaps into model also for files and limit their physical size
* Enforce maximum limit for notifications (1000...)
- Rename some of the classes:
NotificationServer -> Server (there's namespaces, you know)
NotificationModel -> NotificationsModel (so it's plural like JobsModel)
- Introduce NotificationGroupingCollapse
- Wire up PulseAudio-qt for eventual notification silence in dnd mode
- Touch up notification looks
- Add indentation and "line" for grouped plasmoids
- Rethink "show more" button to be at the end
- Fix buttons overlapping
- Remove NotificationDelegate item and do those few adjustments in FullRepresentation
- Cleanup job details, handle when processed > total
- Use States {} more
- Show low urgency popups by default but don't add them to history
- Old dataengine is fully functional now
Except the inhibition stuff but I'm not sure if this is worth keeping the way it is
- "More" menu opens on press now and highlights
- Invoking any action closes the notification now
KNotification explicitly does that for us but e.g. GTK does not
- Add clear button for history
- Restore kbroadcastnotification support
- Allow forgetting seen application (for KCM)
- Let users "create" notifications by calling NotificationServer::add
- When no application name is provided look up the sender's process name as last resort
- Add kdebugsettings categories file
- Cleanup, pimpl NotificationServer and Notification for export
- Wire the old dataengine up to use it for compat:
it shows notifications but is otherwise pretty broken right now
- Start writing kconfigxt and Settings code (no real code yet)
- Add a Inhibition DBus interface (no actual server-side code yet)
- Group notifications by application
Pretty much tasks grouping model from libtaskmanager slightly adjusted
- Let widget take full height when expanded in vertical panel "side bar usecase"
- Fix bugs here and there
Summary: D18678 changes the Notifications KCM's icon. This patch uses that same icon in the Notifications widget in places where clicking on it will open the KCM.
Test Plan: {F6586488, size=full}
Reviewers: broulik, #plasma
Reviewed By: broulik, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D18723
On teardown with the popup expanded, the cleanup handler might fire with us already having been deleted.
BUG: 397105
FIXED-IN: 5.12.7
Differential Revision: https://phabricator.kde.org/D14651
libnotificationmanager provides a proper notification model situation similar
to libtaskmanager. There is also a new notification applet implementing the
suggestions and VDG mockups in the wiki
NOTE: the notification dataengine is defunct in this branch, so while the applet
(for now) installs as "new notifications", the old applet will stop working when
you use this. The dataengine will eventually be restored (famous last words)
for compatibility but using the NotificationServer singleton introduced in
libnotificationmanager.
The applet can show notifications, they expire, can be closed, and their
default action invoked. Still heavily WIP and API subject to change.
[1] https://community.kde.org/Plasma/Notifications
We don't merge URLs and it probably doesn't make sense with the way grouping is currently implemented.
BUG: 396741
FIXED-IN: 5.12.7
Differential Revision: https://phabricator.kde.org/D14287
Summary:
ServiceJob::setResult already does a emitResult.
Discovered with the assert created in https://phabricator.kde.org/D9862
Reviewers: #frameworks, #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10629
Summary:
Qt labels support a HTML subset, using a completely internal parser in
QTextDocument.
The Notification spec support an even smaller subset of notification
elements.
It's important to strip out irrelevant tags that could potentially load
remote information without user interaction, such as img
src or even <b style="background:url...
But we want to maintain the basic rich text formatting of bold and
italics and links.
This parser iterates reads the XML, copying only permissable tags and
attributes.
A future obvious improvement would be to merge the original regular
expressions into this stream parser, but I'm trying to minimise
breakages to get this into 5.12.
Test Plan:
Moved code into it's own class for easy unit testing
Tried a bunch of things, including what the old regexes were doing
Also ran notify send with a few options to make sure things worked
Reviewers: #plasma, fvogt
Reviewed By: fvogt
Subscribers: aacid, fvogt, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10188
Summary:
When the service is regsitered we want to have all the internal routing
pre-configured. Otherwise pending calls (such as pending DBus activated
calls) can be processed before the path is registered and then fail with
an error that the path does not exist.
Also remove the fairly redundant check on registerObject. That can return
false if some object in this process has registered itself on that path; but in that
case, the very last thing we'd want to do is call unregisterService.
Test Plan:
Generated a load of notifications
Started plasma
Ouptut showed valid return on GetCapabilities, not an error on missing path
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7596
Now that we have "desktop-entry" available, expose this information in the data engine.
This could enable a notification implementation to show the application name or do smarter grouping.
The naming is somewhat suboptimal but "appName" and "appIcon" are already occupied and predate this.
I also didn't just want to overwrite the hints the application gives, especially not the "appIcon" which is used as notification icon.
Differential Revision: https://phabricator.kde.org/D6106
This reverts commit 86b7aaf408.
this causes a crash at the action triggering and removing the action
from history upon action triggering is debatable from an ui pov
reviewed-by: kbroulik
BUG:376444
This will listen for a signal on the system DBus to show a notification to all
users on the current machine. This allows prettier and more versatile
notifications than using wall/write.
This is disabled by default but can be enabled in e.g. ~/.config/plasmashellrc
per user or /etc/xdg/plasmashellrc globally:
[Notifications]
ListenForBroadcasts=true
Differential Revision: https://phabricator.kde.org/D3606
Summary:
Sometimes we get notifications for events that are also displayed by
Plasma, giving us some rather annoying popups.
This patch provides a service on the notification dataengine so that
other plasmoids can block the notification applet from processing those
notifications.
Intended use case is for the network manager plasomid to not show a
notification whilst the dialog is open, as notifications come from kded.
However it's kept generic enough that other plasmoids can filter on
other hints, such as category or desktop file.
Test Plan:
Wrote relevant patch for plasma-nm
Didn't get notification toggling a network whilst the popup was open
Did after I closed the popup
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3589