Usually it's not very long, so in the common case of just an application name, it won't be truncated anyway.
But in case an origin is set, it might be. In this case, we want to make sure the end of the origin is shown, in case it is for identifying a website domain.
Differential Revision: https://phabricator.kde.org/D23690
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
Summary:
One thing that has been bugging me a bit with notifications is how close the pop-up is
to the screen corners/edges. It's so close that it obscures various things that live very
close to screen edges, such as windows' titlebars and the text input field in chat apps.
The latter case is really annoying in particular because if you have multiple chat apps
running, notifications from the app that's in the background will obscure what you're
typing in the text input field of the foreground chat app.
This patch fixes these types of issues by doing the following:
- Adjusting the popup positioning algorithm make popups that are in a corner equidistant from both adjacent screen edges, rather than only one
- Doubling the defualt distance from the nearest corner/edge
The combination of these changes allows pop-ups to no longer obscure window titlebars
and chat windows' input fields.
BUG: 401500
FIXED-IN: 5.16.5
Test Plan:
Top corner popup position no longer obscures window titlebar text and buttons: {F7259424}
Bottom corner popup position no longer obscures chat app's text input field: {F7259425}
Reviewers: broulik, #plasma, #vdg
Reviewed By: broulik, #plasma
Subscribers: cblack, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23253
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 switching to "unread" state, animate the bell icon.
It only animates for the transition to unread so you can see where it's going,
but not every time a notification comes in, as that would be annoying.
Differential Revision: https://phabricator.kde.org/D23044
Summary:
Text inside a small circle has a lot of problems with fitting in there
and being properly aligned.
Test Plan:
Breeze:
{F7180340, size=full}
Breeze (with D23019):
{F7178197, size=full}
Air:
{F7178312, size=full}
Oxygen:
{F7178315, size=full}
Reviewers: #vdg, #plasma, ngraham
Reviewed By: #vdg, ngraham
Subscribers: ngraham, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23018
Summary: Currently, it uses `notification-disabled for a non-disabled state
Reviewers: #vdg, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D23033
Summary:
When the notification count is in double digits, the numbers can overflow the icons which is meant to contain them.
This patch checks if there is more than 1 digit and then slightly reduces the size of the numbers.
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22878
Since it is a custom `TextEdit` to make text selectable the workaround in the style didn't apply to it.
Differential Revision: https://phabricator.kde.org/D22858
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
The popup width is fixed, so don't rely on the actual dialog window width which might be bollocks.
More importantly, place the popups immediately and before they are shown so they show up
correctly and don't fly all over the place.
It can happen that the popup contents aren't readily laid out when we enter positionPopups() after
object creation, so don't reserve any space for the popup until it
Differential Revision: https://phabricator.kde.org/D22045
Summary:
If this entry is not added, kpackagetool5 tries to load the specific
packagestructure plugin, fails to load it and then writes the metainfo
as it is "application" instead of add-on
Reviewers: apol, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21991
This edge touches the notification text and as such shouldn't "bleed in" as with the other edges that touch the dialog borders.
Previously this wasn't an issue as there was a bug causing excess bottom padding on the dialog.
Differential Revision: https://phabricator.kde.org/D21569
This tries to use fontSizeMode but in conjunction with QtRendering to achieve better number alignment.
Since this is more "part of an icon" than "proper text" using QtRendering is acceptable.
Differential Revision: https://phabricator.kde.org/D21408
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