We can leverage the `priority` property of QActions, which is Normal (128)
by default, and hide it from systray header if the priority is set to
LowPriority (0).
BUG: 446396
Due to async nature of QDBusPendingReply, services could be already
registered by QDBusServiceWatcher when the pending reply takes a long
time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished,
which will make the same service added twice and crash plasmashell.
We need to check if a service is already added in m_sniServices before
processing registered items in QDBusReply.
BUG: 443961
XdgActivationTokens are loaded async. To acheive a job like pattern we
were comparing serials in our slot when one was created.
On wayland this isn't ideal because we're slowly building up an
increasibly long list of lambdas being run, but they'll all no-op.
On X11 because lastInputSerial is always 0 we run the slot multiple
times for every system tray item each time an item is clicked or an
application is launched.
For xembedsniproxy this is especially problematic problematic as we will
trigger synthesised input events in our slot.
BUG: 444385
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
This setting is more appropriate when in tablet mode, as it makes the
System Tray icons scale up to fill the panel's height/width. When tablet
mode exits, it returns to the default icon size setting (unless the user
already set to always be in "scale with panel" mode.
CCBUG: 439922
This makes the expander arrow match the scale of all the other icons
when using the "Scale with panel width" setting. Otherwise it looks too
small and is hard to use in tablet mode, if you're using that setting for
increased touch-friendliness.
BUG: 439922
FIXED-IN: 5.23
Plasmashell already handles closing the expanded representation
when the config dialog is openend (or keeping it open if it's
pinned).
Tested with opening system tray and applet configs both when pinned
and when unpinned.
BUG:440263
Fix a visual glitch that caused the icons and highlight of the items in
the HiddenItemsView of the systray to be blurry. This commit fixes this
by preventing the items from being positioned in a non-integer position.
This patch fixes an issue where action remain disabled after changing its
visibility off/on by filtering actions and creating buttons for visible
actions only. It also slightly improves the code.
The Ids from SNIs are not the application id in the first place.
Also when activating an app which does not support the new method
on the inferface we never stop the startup effect.
BUG:439682
Some applet config titles contain ampersands for mnemonic purposes. PC3.ToolTip filters them out but QQC2.Tooltip does not, so they are visible in the system tray config window.
BUG: 437605
Sometimes parent component on the applet is not fully updated - for
example effectiveStatus is not yet read from the model. In such case it
will have default value leading to undesired effect.
Call all `updateHighlightedItem` in `Qt.callLater` so that it is called
in next event loop. As a bonus it is called only once, which can improve
performance.
BUG: 437105
FIXED-IN: 5.22.0
This code was trying to filter out the configure action but failing
because it was comparing a QMenuItem to a QAction. We need to compare
the QMenuItem's internal QAction in order for the configure action to
ever match.
This will result in cleaner diffs when a new value is added
and clang-format will not indent them with the opening
brace of the initializer list which makes is slightly easier to read.