broulik created this revision. broulik added reviewers: Plasma, VDG. Herald added a project: Plasma. Herald added a subscriber: plasma-devel. broulik requested review of this revision.
REVISION SUMMARY This completely rewrites the notification plasmoid using `libnotificationmanager` The popups are much more compact and persistent notifications stay on screen now until dismissed. The is also only one global set of popups, rather than one per applet. Job progress is merged into notifications for a unified look, with a sensible summary text containing the most important infos about a job. A do not disturb toggle is added that allows to set a time in which no notification popups or sounds are played and all notifications go straight to the history. The history will ignore notifications that were explicitly closed or interacted with and will be grouped by app and show only 2 notifications per app by default to be less cluttered. BUG: 222470 BUG: 402144 BUG: 405570 BUG: 391646 BUG: 401819 BUG: 400811 BUG: 392669 BUG: 390143 BUG: 390864 BUG: 374099 BUG: 360990 BUG: 346458 BUG: 398926 BUG: 390152 BUG: 342355 CCBUG: 402391 CCBUG: 399697 CCBUG: 400871 CCBUG: 398580 FIXED-IN: 5.16.0 TEST PLAN Depends on D20265 <https://phabricator.kde.org/D20265> (hope I didnt mistype any of the bugs) Let the screenshots speak for themselves... Much more compact, more refined look: F6754839: Screenshot_20190405_152344.png <https://phabricator.kde.org/F6754839> Thumbnail are touched up with better apsect ratio and blur: F6754840: Screenshot_20190405_151903.png <https://phabricator.kde.org/F6754840> Can also be very compact if no summary is provided F6754848: Screenshot_20190405_152517.png <https://phabricator.kde.org/F6754848> History popup with no notifiations F6754841: Screenshot_20190405_151813.png <https://phabricator.kde.org/F6754841> Do not disturb time selection (today is Friday so it offers next Monday as end time) F6754842: Screenshot_20190405_151827.png <https://phabricator.kde.org/F6754842> Do not disturb for 1 hour F6754843: Screenshot_20190405_151836.png <https://phabricator.kde.org/F6754843> History full of notifications, expand feature F6754844: Screenshot_20190405_152125.png <https://phabricator.kde.org/F6754844> Collapse feature F6754845: Screenshot_20190405_152136.png <https://phabricator.kde.org/F6754845> Single notification amongst a group F6754846: Screenshot_20190405_152149.png <https://phabricator.kde.org/F6754846> Better job dialogs, providing the most important info at a glance F6754866: Screenshot_20190405_152640.png <https://phabricator.kde.org/F6754866> Full details still available F6754867: Screenshot_20190405_152700.png <https://phabricator.kde.org/F6754867> Again, most important info (how many of how many and where is it going) right there without having to expand details section F6754875: Screenshot_20190405_152723.png <https://phabricator.kde.org/F6754875> Copying multiple files finished offers to open the destionation folder F6754876: Screenshot_20190405_152732.png <https://phabricator.kde.org/F6754876> Copying/Downloading single file offers to act on the file like you can with screenshots F6754878: Screenshot_20190405_152757.png <https://phabricator.kde.org/F6754878> REPOSITORY R120 Plasma Workspace REVISION DETAIL https://phabricator.kde.org/D20266 AFFECTED FILES applets/notifications/CMakeLists.txt applets/notifications/Messages.sh applets/notifications/filemenu.cpp applets/notifications/filemenu.h applets/notifications/lib/CMakeLists.txt applets/notifications/lib/notificationsapplet.cpp applets/notifications/lib/notificationsapplet.h applets/notifications/notificationapplet.cpp applets/notifications/notificationapplet.h applets/notifications/package/Messages.sh applets/notifications/package/contents/config/config.qml applets/notifications/package/contents/config/main.xml applets/notifications/package/contents/tests/test.qml applets/notifications/package/contents/ui/CompactRepresentation.qml applets/notifications/package/contents/ui/EditContextMenu.qml applets/notifications/package/contents/ui/FullRepresentation.qml applets/notifications/package/contents/ui/JobDelegate.qml applets/notifications/package/contents/ui/JobDetails.qml applets/notifications/package/contents/ui/JobDetailsItem.qml applets/notifications/package/contents/ui/JobItem.qml applets/notifications/package/contents/ui/Jobs.qml applets/notifications/package/contents/ui/NotificationDelegate.qml applets/notifications/package/contents/ui/NotificationHeader.qml applets/notifications/package/contents/ui/NotificationIcon.qml applets/notifications/package/contents/ui/NotificationItem.qml applets/notifications/package/contents/ui/NotificationPopup.qml applets/notifications/package/contents/ui/Notifications.qml applets/notifications/package/contents/ui/ScreenPositionSelector.qml applets/notifications/package/contents/ui/SelectableLabel.qml applets/notifications/package/contents/ui/ThumbnailStrip.qml applets/notifications/package/contents/ui/TightLabel.qml applets/notifications/package/contents/ui/configNotifications.qml applets/notifications/package/contents/ui/global/Globals.qml applets/notifications/package/contents/ui/global/qmldir applets/notifications/package/contents/ui/main.qml applets/notifications/package/contents/ui/uiproperties.js applets/notifications/package/metadata.desktop applets/notifications/plugin/CMakeLists.txt applets/notifications/plugin/draghelper.cpp applets/notifications/plugin/draghelper.h applets/notifications/plugin/notificationshelper.cpp applets/notifications/plugin/notificationshelper.h applets/notifications/plugin/notificationshelperplugin.cpp applets/notifications/plugin/notificationshelperplugin.h applets/notifications/plugin/qmldir applets/notifications/plugin/thumbnailer.cpp applets/notifications/plugin/thumbnailer.h applets/notifications/thumbnailer.cpp applets/notifications/thumbnailer.h To: broulik, #plasma, #vdg Cc: plasma-devel, jraleigh, GB_2, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart