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
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
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
* 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!
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: 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
Plasma's Label has a default height based on the contentHeight of the text.
However, this interferes with QtQuick Layout's logic and might cause an infinite loop.
This can easily be triggered by sending a notification with a multi-line heading/summary.
CHANGELOG: Fixed a freeze caused by certain notifications
BUG: 381154
FIXED-IN: 5.12.0
(cherry picked from commit a3c0565ace)
Plasma's Label has a default height based on the contentHeight of the text.
However, this interferes with QtQuick Layout's logic and might cause an infinite loop.
This can easily be triggered by sending a notification with a multi-line heading/summary.
CHANGELOG: Fixed a freeze caused by certain notifications
BUG: 381154
FIXED-IN: 5.12.0
This was lost by the introduction of the default action as the MouseArea steals events
from the TextField below.
To address this, selecting text and click handling has been implemented manually.
Furthermore, the mouse cursor is changed to an IBeam cursor and turns into a hand when
above hyperlinks whose URL can now also be copied separately from its text in the
context menu.
BUG: 386118
FIXED-IN: 5.12.0
Differential Revision: https://phabricator.kde.org/D8446
* Make links clickable again
* Don't pass visualParent to context menu as we already give it a position, fixes it being positioned incorrectly
* Open context menu on press already like is done everywhere else
* Give "Copy" the edit-copy icon
* Deselect text after copying again, otherwise it stays selected but the user cannot unselect it.
BUG: 382263
FIXED-IN: 5.10.5
Differential Revision: https://phabricator.kde.org/D7029
According to specification only body text may contain HTML and this keeps apps from screwing up
the layout or even loading remote images.
Differential Revision: https://phabricator.kde.org/D6671
Summary:
drop most of the positioning code, drop the animation of the
window position. position the popup in the signal handler of
visibleChanged as we are sure there the size is final and the
first expose event didn't arrive yet.
at that point we are sure the size is the final and correct one
the animation is supposed to be done by the morphingpopups effect
instead.
Test Plan:
notification positions are always correct now, both on X11 and
Wayland.
Unfortunately on x11 the notification typ doesn't seem to pass,
so they are correctly animated only in wayland
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: apol, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6216
We've been having the configure button on notifications for a long time but so far it would
only ever invoke KNotification configuration UI with no way for an application to provide
its own, more versatile or extensive, UI.
When an action named "settings" is present in the notification the "configure" button will
instead invoke this action.
Differential Revision: https://phabricator.kde.org/D5424
When dragging a file from a notification and it times out, it closes and crashes.
This keeps the dialog open during drag.
Differential Revision: https://phabricator.kde.org/D4976
Summary:
Make sure clicking on them will work the same on the popup and the delegate,
there were some issues on one or the other, now all the code is centralized
in NotificationItem.
Test Plan: Been testing locally, repeatedly
Reviewers: #plasma, davidedmundson, mart, albertvaka
Reviewed By: mart, albertvaka
Subscribers: mck182, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4545
Summary:
This uses the feature introduced here [1] on KNotifications, so default
actions don't appear as a regular action button. Instead, they are
activated by clicking on the notification itself.
If the default action is not set, it uses the previous behavior of close
on click.
This changes both the notification popup and the notifications inside the
plasmoid.
[1] https://phabricator.kde.org/D4142
Test Plan: Manual testing.
Reviewers: #plasma, colomar, mart
Reviewed By: mart
Subscribers: mart, broulik, apol, mck182, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4215
Our notification popups are huge compared to other platforms,
this tightens and streamlines the layout a bit.
The button sizes are much more dynamic now, allowing them to become smaller but also
significantly wider. It always bothered me how, at least in German locale, most of the
action buttons are elided.
Differential Revision: https://phabricator.kde.org/D3560
When a notification contains URLs, they will be shown as a large preview (in case of one
thumbnail) or multiple in a strip (similar to what Klipper does).
The previews can be clicked to open the file and can be dragged anywhere (e.g. to a
webbrowser or chat window).
Differential Revision: https://phabricator.kde.org/D3539
This limits the size of the notifications in the popup to 10 lines of text.
The limit was removed when it was changed to a TextEdit so text could be copied from it.
BUG: 361389
FIXED-IN: 5.8.0
The change back to a MouseEventListener broke notification actions because
its onClicked handler would fire before the action buttons closing the
notification before it had a chance to trigger the action.
Differential Revision: https://phabricator.kde.org/D1578
This simplifies the component by removing the Loader-property combo and
leaves just a read-only TextEdit
BUG: 358981
Reviewers: #plasma
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D899
Force the whole thing to collapse if the children are invisible.
If there is a big notification followed by a small one, the height
of the popup does not always shrink back, so this forces it to
height = 0 when those are invisible. -1 means "default to
implicitHeight"
This reworks the notification sizing computation to use Layouts. This
should fix all the popup sizing issues there are (including a binding
loop error).
Now it also properly elides after max 4 lines of text.
REVIEW: 124149
FIXED-IN: 5.3.2
BUG: 339588
BUG: 349142
As notifications support <img/> tags, it can happen that a big image is
sent and that is then painted even outside of the popup's frame. So we
need to clip it.
BUG: 346419
FIXED-IN: 5.3.1
Especially the first ones ("Just now", "10s ago", "30s ago") come in quick succession
making it feel weird for them to only update when opening the dialog.
It also simplifies the code thanks to triggeredOnStart
REVIEW: 122230