This was meant to provide some separation but since the arrow icon has so much padding around it anyway and more importantly,
it breaks alignment in the list, remove it.
Differential Revision: https://phabricator.kde.org/D21471
The popup is a pure QML singleton and as such doesn't inherit the i18n context from the applet. Use i18nd explicitly.
BUG: 407927
Differential Revision: https://phabricator.kde.org/D21422
It is redundant with the title added by system tray. Even when added standalone it is kind of obvious that this is notifications.
The clear button is moved next to the configure button.
Differential Revision: https://phabricator.kde.org/D21361
AppletInterface does not emit change signals for screen properties, only ContainmentInterface does it.
Since a fix will only be in a future Frameworks version 5.16 won't depend on, mitigate the effect by not caching the property.
The property was only a lazy Connections replacement anyway.
Also, compress screen change updates to avoid flickery animation of the popup as you resize the panel.
CCBUG: 407504
BUG: 399257
Differential Revision: https://phabricator.kde.org/D21365
Summary:
The availableScreenRect is relative to the current screen, so if the notification
applet is not on the top-left screen, the notification popup will not appear next
to where the applet is but on the top-left screen instead. Adding the absolute
screen geometry to the availableScreenRect ensures that the popup is positioned
on the right screen.
Test Plan:
Position two screens above each other, place the panel on the bottom screen, the
notification now correctly appears on the bottom screen next to the applet.
Reviewers: broulik, davidedmundson, lbeltrame
Reviewed By: broulik, davidedmundson, lbeltrame
Subscribers: lbeltrame, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21184
This makes it a bit more generic. Advertise that this may also be used to indicate what email account a notification came from.
Differential Revision: https://phabricator.kde.org/D21137
- Fix leak and crash when job goes away before being shown
- Some emit and signal fixes
- Always create services watchers
- Update unity job percentage in destructor, fixes the progress lingering around when disabling in settings
Also tell the world that we're merely proxying a job progress
- Don't hardcode KIO error codes
- Honor "show critical on top of full screen" setting
- Don't show generic "dialog-information" icon, it's pointlessly generic
* Use index(n, m, parent) instead of parent.child(n, m)
* Update unity count when job is closed without stopping it first
* Iterate whole dataChanged range [topLeft, bottomRight] when group is resolved
* Generate roleNames from meta object
* Use checkIndex()
* Increase default timeout for notifications with thumbnail
* Improved keyboard nav, support Home/End, let Return open thumbnail
* 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)
It is supposed to broadcast application job progress to multiple interested parties.
However, effectively it was just plasmashell. Cut the middleman, including its never finished and unused UI,
and talk to plasmashell directly.
The applicationjobs dataengine is adjusted to use the new infrastructure instead.
Since it works only in the same process now, Unity launcher API is used to at least broadcast basic
application progress information for use in e.g. Latte Dock.
Also, introduce JobViewServerV2 and JobViewV3 APIs which are using desktop entries for identification rather
than application names, and more importantly are extensible using a QVariantMap hints, so adding new
fields in the future should be significantly less painful with Frameworks, Applications, and Plasma all having
their own release schedule. :)
* 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
- Rework compact representation animations a bit
For some reason they often got stuck
- Implement do not disturb mode for applications
- Add fallback timeout to ensure notifications eventually timeout
Otherwise when disabling dnd mode you will get spammed
and we would also keep apps running indefinitely waiting for the notification to close
- Install plasmanotifyrc with some sane defaults
So far only lets Spectacle show its screenshot notifications in dnd mode
- Introduce Closable role rather than hardcoding that behavior everywhere in the view
- Better app identification/grouping for jobs
- Be more lenient about app identification (firefox will match Firefox, too)
- Cleanups
- Add basic do not disturb mode
Can set a time until it enabled, persisted across reboots
Whitelist for apps missing right not
Inhibition API not wired up yet
- d-pointer JobDetails
- Use KFilePlacesModel for prettier destUrl reporting "Copying to Home"
- Expose default action in history as button
- Improved right-to-left language support
- Let NotificationServer just lurk (without registering a service)
- Catch when plasmoid is deleted and stick to another one
Our dear friend Notification plasmoid has slipped the surly bonds of Earth
to touch the face of eternal preservation in Git history. It leaves a huge
emptiness in the hearts of all of us who loved it, many who here its friends.
Originally concveived in 2011 as a "New QML based notifications plasmoid
for mobile", it quickly outgrew its creator's vision and became a vital
component of the Plasma Desktop. When the new kid on the block arrived in
the form of Plasma 5, it showed its willpower to survive this stark transition
and served us for another half a decade. It taught us to seize every
opportunity to increase productivity and improve user experience,
yet it became evident that it reached its limits and so on April Fools' Day 2019
its heart beat for the last time.
Farewell!
- Support replacing notifications properly
- Now that we have nice models we can finally do the replacing in the way the spec
asks for "atomically (ie with no flicker or other visual cues)"
- Catch some more cases in notification details text (trash:/ stuff)
- Prefer notifyrc name over desktop entry name in case a service within another app sends
an event (e.g. Discover notifier in Plasma, KNotification automatically sends desktop-entry
of the parent app)
- Implement x-kde-urls thumbnailer with drag and drop and fancy blur
Originally intended to be able to show multiple files but in practise only used for
single pictures, so the code is significantly simplified for that usecase
- Add "Open" feature for finished job notification, offers a context menu as well with
all the KFileItemActions (component from the Thumbnailer)
- Copy description labels to clipboard
Once menu opens the update is paused so the text you copy is what you see
- Fixup sanitizer so we can properly collapse notifications without body text
... and more
Summary:
This patch lifts up the text content of notifications in which the combination of a single line of body text and its heading are taller than their icon and thereby prevents the notification content from drooping too far down and having too much of a bottom margin if it should become much larger than the icon. Seeing as the icon and its margins are never going to be taller than the content in question and the icon is always going to have 1 units.smallSpacing above it, this patch adjusts the height accordingly (0.5 units of smallSpacing above + 0.5 for the spacing below the heading + 0.5 below the content, accommodating the text) to achieve more even padding.
This patch should also improve padding with fonts greater than 10 pt in size.
BUG: 404407
FIXED-IN: 5.15.3
Test Plan:
Before (left) and after (right):
{F6616780}
Reviewers: #plasma, #vdg, broulik, ngraham, filipf
Reviewed By: #vdg, ngraham, filipf
Subscribers: cfeck, anthonyfieroni, filipf, ngraham, abetts, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19036
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
Summary: This patch aims to add padding to the notification widget and fully remedy the issues that arise once it is applied.
Test Plan:
Before:
{F6533139}
After:
{F6533140}
(More padding, and margins as even as can be)
Reviewers: #vdg, #plasma, ngraham, davidedmundson
Reviewed By: #vdg, #plasma, ngraham, davidedmundson
Subscribers: broulik, Codezela, abetts, filipf, davidedmundson, hein, ndavis, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D17975
Summary:
There's an early return before the memory cleanup that happens at the
end of this function.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D17561
Summary:
Now if appIcon isn't defined, it will set the property as undefined.
file:///home/apol/devel/kde5/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/NotificationDelegate.qml:114: ReferenceError: appIcon is not defined
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D16771
Actions stop working when the original notification goes away, however the "Open..." notification when a job completed is added and
handled by us, so we can store it in the history and it will continue to function.
BUG: 398732
FIXED-IN: 5.14.0
Differential Revision: https://phabricator.kde.org/D15578
If a destination file name is present, it is a better label for a job
than the source file name. This is particularly true for web downloads
where the source file name may be a gibberish base64 string while the
destination file name would be selected by the user.
If there is no destination file name, we fall back to using the source
file name.
BUG: 396744
Differential Revision: https://phabricator.kde.org/D14857