We ported units to use the PlasmaCore.Units singleton earlier; now it's
time to do the same thing for PlasmaCore.Theme.
There are no UI changes or regressions detected.
Currently, applet can lose keyboard focus if you click on one of the buttons in its header, after which if you collapse and expand the applet again, the focus will remain on this button. This is extremely inconvenient if you prefer to use the keyboard to work with the applet (for example, with the Clipboard applet). This patch set keyboard focus back to the applet after switching the active applet (as well as after collapsing/expanding it).
When you delete multiple items individually, you can keep clicking
without moving your mouse because the delete button doesn't change its
position (except for when the scrollbar hides, but this is inevitable).
However this ceases to be true for tall entries containing files,
images, URLs, or previews, because the buttons are always centered
vertically in the item. So you have to re-position your mouse to click
on the delete button in its new position, and then do so again to
account for the height of the next item, and so forth.
This commit fixed that problem by top-aligning the row of hover buttons,
but only for tall items. For default-height items, they remain
vertically centered.
The positioning here was funky as if it was trying to to do something
clever, but instead all it did was cause the text to overlap with the
first list item entry with certain combinations of font size and window
size. Instead let's just do the typical thing.
BasicPlasmoidHeading is essentially the "abstract" version, and will not
trigger the visibility condition correctly when inside a System Tray
containment.
Currently, the Clear History action remains visible even if the clipboard
history is empty. This patch changes this so the behavior of the Clear History
action will be the same as in the Notifications widget.
Add explicit find_package() and #include's that are required and were
pulled in by KDELibs4Support.
krdb: remove one redundant #include, KColorUtils
kcm_fonts: send dbus message directly to org.kde.KDEPlatformTheme to
'refreshFonts'
kcm_style:
- use KToolBar::emitToolbarStyleChanged() to notify of toolbar style changes
For the rest use the notifyKcmChange() private method to send the dbus
signal.
[1] https://invent.kde.org/frameworks/kdelibs4support/-/blob/master/src/kdeui/kglobalsettings.cpp#L860
This allows a client to mark a notification as "resident" which means it will
not be closed by the sever when expired or an action is invoked, thus transferring
full control over notification life time to the client.
A notification popup still times out as normal (unless persistent, of course)
but the notification remains alive until the client revokes it or a user
explicitly closes it.
It is opt-in so that a client can expect the notification lifetime to be
indefinite and explicitly close it when an action is invoked on its end.
For example, show "Open with Gwenview" with its icon after downloading
an image file, and "Open with..." in case there is no associated application.
While at it also give an icon to the "Open Containing Folder" button.
Also, port it to use a `KIO::mimetypeJob` to make it asynchronous
and work on remote locations. To make for a less jarring transition (icon suddenly
appearing, causing text reflow and the dialog to resize), take an initial
guess about the mimetype using the file extension while the job is running.
Furthermore, hide the "Open" actions in case the job fails which likely means
the file doesn't exist anymore or cannot be accessed, and as as result
probably cannot be opened anyway.
System Tray forgets Dropbox hidden state after logout+login
The SNI Id should be consistent between sessions, but Dropbox does not
follow the SNI specification - it adds PID as a suffix of Id.
As this is very popular application and it was not fixed upstream for
many years it is reasonable to add workaround in SystemTray.
BUG: 378910
FIXED-IN: 5.22.0
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done`
This is a workaround for the page being totally broken on when opened
again after the dialog was closed for the first time. Using a new controller
works around that.
BUG:424458
forward containmentDisplayHints from panel to the systray, adding the
systray specific ones which are
Plasma::Types::ContainmentDrawsPlasmoidHeading and
Plasma::Types::ContainmentForcesSquarePlasmoids
The restriction on having an amount of files to be processed was to avoid
showing whatever last file had been copied as destination.
However, we already only fall back to using the "destination" label contents
when there is a single file (cf. `NotificationManager::JobPrivate::destUrl()`),
making it safe to assume destUrl is always a predicatble/useful location.
CCBUG: 408778