- 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
Summary:
Porting to Kirigami.FormLayout and using twinFormLayouts in order to ensure alignment with the main layout.
NOTE: Vertical spacing is still clearly wrong, but I could fix that as well if someone could offer a suggestion on how to do it.
Test Plan:
D19932 needed before testing.
Before:
{F6707737}
After:
{F6707739}
Before:
{F6707742}
After:
{F6707740}
Everything still worked.
Reviewers: #plasma, ngraham, mart, hein
Reviewed By: #plasma, ngraham, mart, hein
Subscribers: hein, davidre, mart, abetts, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19873
- 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
Summary: This patch aligns the color wallpaper plugin's options with the FormLayout above it by making use of twinFormLayouts.
Test Plan:
D19932 needed before testing.
Before:
{F6719634}
After:
{F6719629}
Before:
{F6719633}
After:
{F6719630}
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D20048
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!
- 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
Summary:
This allows to exlude single images from the slideshow by unchecking the little checkbox in the top right corner.
Feature or todo?: If a folder is removed I don't touch the unchecked Slides. So the list could get very big but if a formerly removed folder is
added again an excluded image will be excluded again.
Test Plan:
{F6684113}
- Uncheck some images
- They don't appear in the slideshow
Reviewers: #plasma, #vdg, ngraham, davidedmundson
Reviewed By: #plasma, #vdg, ngraham, davidedmundson
Subscribers: davidedmundson, filipf, abetts, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19687
Summary:
Older Plasma themes, which are still offered also for current Plasma 5 e.g.
from store.kde.org, are missing out "shadow-*" elements for
"widgets/panel-background". The old code of the PanelShadows class does not
handle that case though, and as result for X11 sets a _KDE_NET_WM_SHADOW
property with "0" for most of the pixmaps due to them being an empty pixmap
in at least one dimension (except for the emtpy corner pixmap which is
always 1,1). The resulting behaviour with current KWin (X11) is this:
* when starting a Plasma shell with a theme without panel shadow elements,
KWin does not show shadows
* when switching from a theme with shadow elements to one without, the
shadow of the previous theme is continued to be used.
Reason is that KWin when parsing that property cancels the parsing when it
comes across a "0"/null id for a shadow pixmap, without further error
handling, so either does not create a shadow or keeps the old.
This patch catches the case of themes without any panel shadow elements and
only sets the _KDE_NET_WM_SHADOW property or wayland shadow if there are
shadows, otherwise removes them if needed.
Test Plan:
Switch between Plasma themes with and without separate shadow elements
defined (e.g. Breeze <-> Fluffy Bunny).
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D20051
- Improve compact reprsentation
- Keep popup open during interaction (context menu, drag)
- Improve "ago" label (e.g. show "Last Sunday")
- Improve group visuals (still pretty much WIP)
- Hide popups when interacted (opened file, triggered file action, etc)
Closing when having invoked an action isn't implemented yet but is probably neccessary
- Make autohide job popup setting work
- Set critical AlwaysOnTop (requires KWin patch)
- Improve error handling in ThumbnailStrip
Show file icon if thumbnail generation failed instead of a blank space
- Add heuristic for popup placement and make custom setting work
- Add deviceName and displayApplicationName (for KDE Connect)
So it can show from which device and which app this notification originally came from
- Improved service discovery (and defaultComponent handling)
Quite a few notifications, e.g. DrKonqi crashes are in plasma_workspace.notifyrc
When we get an event like this, show the original app instead
- Make blacklist for popup and history work
- Add "lastRead" property for "unread" handling vs "expired" (latter likely to be dropped)
- Add sortMode so history is strictly sorted by date (it's grouped after all)
- Begin work on do not disturb UI in plasmoid
Summary:
Change the default Klipper behavior in order for https://phabricator.kde.org/D19715 to work.
Klipper will save images to clipboard, but unless Ignore Images is unchecked in the options, it won't save them to clipboard history.
CCBUG: 393708
Reviewers: #plasma_workspaces, davidedmundson
Reviewed By: #plasma_workspaces, davidedmundson
Subscribers: ngraham, davidedmundson, plasma-devel, #plasma_workspaces
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19852
- Also moe the NotificationPopup item back to the root folder
- Implement tracking of unknown apps, ie. once an app shows a notificaton it will show up
in the KCM so it can be configured
- Make blacklisting of notification popups (via setting in KCM) work
- Start on inhibition stuff (DBus API proposal sent to XDG mailing list)
- Introduces a Settings item that can be used to query and write settings
Used from both the applet and the KCM and in the future Task Manager and others
- Wire up delegate to make FullRepresentation somewhat work
- Fix text selection in NotificationItem (workaround QQC1 ScrollView bug)
- Make model writable where it makes sense (rather than having a dedicated setter)
- Let JobsModel also notice jobs that were present at the time of its creation
- 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: This way we can open the context menu from touch
Test Plan: Tapped and hold on my screen
Reviewers: #plasma, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19946
- 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
- Notification action buttons
- Custom icon pixmaps in notifications
- Popup handling
- Notification urgency (low isn't shown as popup TBD, critical always no matter what)
- History stuff (only expired notifications end up there, none that were closed or revoked)
- Text selection and copy for body text
- Basic tray icon support
and many other things
Application jobs are shown as part of regular notifications:
- They show up as little popup that can be hidden in the history
- When finished progress popup turns into a notification
There's still some glitches and missing features, notably
- Screenshot thumbnails
- "Open" functionality for finished jobs
- History layout
- code cleanup
- and basically every configuration option
Summary:
Desktop files such as kde/foo.desktop are identified as kde-foo.desktop
because of the menu spec
```
If the directory contains sub-directories then these sub-directories should be (recursively) scanned as well. The name of the subdirectory should be added as prefix to the desktop-file id together with a dash character ("-")
```
the runner therefore broadly assumed that kde-foo.desktop is always
the desktop file kde/foo.desktop and since kde/ was only used up to KDE3
this assumption formed the basis for sepcial KDE3 compat handling. that is
of course wrong because a service might just as well actually have a
prefix and be actually called kde-foo.desktop rather than
kde/foo.desktop. Specific example: kde-gtk-config.desktop
seeing as this is ancient compatibility code that is actually wrong,
the easiest solution seems to be dropping the code entirely (and thus no
longer assume kde- has some special meaning).
(also I didn't find a way to get the underlying filename of a kservice,
so making the code not wrong seems non-trivial)
CHANGELOG: the GTK+ settings module now correctly appears in krunner and kickoff
BUG: 383287
Test Plan: gtk kcm correctly shows up in both kickoff and krunner searches
Reviewers: broulik
Reviewed By: broulik
Subscribers: GB_2, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19788
Summary:
This patch replaces the PlasmaComponents labels in Clock.qml with QQC2 ones. This resolves the issue of the clock letters/numbers getting clipped.
BUG: 404651
FIXED-IN: 5.15.3
Test Plan:
Before and after
{F6680490}
Reviewers: #plasma, #vdg, filipf, ngraham, hein
Reviewed By: #plasma, #vdg, ngraham, hein
Subscribers: mart, davidedmundson, plasma-devel
Tags: #plasma
Maniphest Tasks: T10325
Differential Revision: https://phabricator.kde.org/D19647
Summary:
This patch:
- tells the login screen to modify the font size specified in theme.conf and the lock screen to modify the user's default theme's font size instead
- makes sure that the login screen session and keyboard buttons take this new approach too
- raises the font size of "Start New Session" on the lock screen (to match the rest)
- raises the artist/track font sizes (to match the password field)
Test Plan:
This patch resolves the problem of
(1) The fonts on the login screen and
{F6676520}
(2) the fonts on the lock screen
{F6676524}
not having matching sizes.
Reviewers: #vdg, #plasma, ngraham, filipf
Reviewed By: #vdg, ngraham, filipf
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Maniphest Tasks: T10325
Differential Revision: https://phabricator.kde.org/D19631
There's an kcminit stage that wasn't documented.
Also change m_stage and then check it so the number here matches the number of stages in the comment.
CCBUG: 405446
Differential Revision: https://phabricator.kde.org/D19801
Loading the theme and setting everything up can take a while.
Ensure that we catch all setStage calls that might have been emitted before we were fully up.
CCBUG: 405444
CHANGELOG: Reduced likelihood of KSplash not being dismissed properly and only timing out after 30s
Differential Revision: https://phabricator.kde.org/D19753
Summary: This patch ports global menu's configuration window to QQC2 and Kirigami.FormLayout. It also changed the category icon to be consistent with other applets.
Test Plan:
Before:
{F6682666}
After:
{F6682667}
Reviewers: #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: abetts, ngraham, plasma-devel
Tags: #plasma
Maniphest Tasks: T10586
Differential Revision: https://phabricator.kde.org/D19670