Unfortunately, the list<> basic QML type is too primitive, it does not
even expose any kind of remove() functionality, so the only supported
way is to create a new list and assign it instead.
This fixes the bug when there may appear multiple empty or duplicating
actions in the expanded view due to the fact they they were only added
to but never cleaned up / removed from the list of contextual actions.
BUG: 449778
(cherry picked from commit af98cef3ef)
If the time between logout and relogin is short enough or a separate session
is open during that time, the systemd user instance keeps running. This means
that generators like the one for XDG autostart handling aren't run again, which
effectively means it's still using the configuration from the previous session.
Just reload systemd on every login to make sure its state is fresh.
(cherry picked from commit e1b146551a)
A few KDE versions ago, the KCM and app results were provided by the same plugin.
To make sure they do not appear very far down the list, the plugin id is inserted right after the services runner.
CCBUG: 446239
(cherry picked from commit fcbb1de7a8)
The formFactor has been set, either by `ShellCorona::addPanel` or the
ctor of `ContainmentPrivate::ContainmentPrivate`, so it's redundant to
set the default value here again, or the panel will be added to the top
edge again and again.
(cherry picked from commit 3ff3cea11b)
The current shortcuts could conceivably override app shortcuts, since
they don't use the Meta key. The following changes are made:
Automatic Action Popup Menu: Ctrl+Alt+X -> Meta+Ctrl+X
Manually Invoke Action on Current Clipboard: Ctrl+Alt+R -> Meta+Ctrl+R
These are safe to change in the code rather than adding a new one and
keeping the old ones around for compatibility's sake because
KGlobalAccel::setGlobalShortcut by default preserves old shortcuts
when they are changed, and we aren't overriding that behavior here. So
only new installs will get the new shortcuts and existing user installs
will be untouched.
(cherry picked from commit b768533890)
In panelview.cpp, the old window focus is restored when switching to
Passive status. This fixes the behavior by setting the panel status to a
status that is not AcceptingInputStatus.
BUG: 454729
CCBUG: 352476
FIXED-IN: 5.25
(cherry picked from commit 47acfaff51)
Otherwise the user needs to manually tab over to the Unlock button
first, which is annoying. And they may not even think to do it at all.
The `forceActiveFocus()` is because the stack view does not manually pass focus
to the item you push onto it; this needs to be handled manually.
BUG: 454707
(cherry picked from commit 370976d715)
The delimiter might change if the settings are changed.
By having a member variable, we still avoid re-creating the same regex for every time the runner is queried.
BUG: 454596
(cherry picked from commit a5378b5282)
screenpooltest.cpp:73:38: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
73 | ScreenPoolTester screenPoolTester();
| ^~
screenpooltest.cpp:73:38: note: remove parentheses to default-initialize a variable
73 | ScreenPoolTester screenPoolTester();
| ^~
| --
screenpooltest.cpp:73:38: note: or replace parentheses with braces to value-initialize a variable
(cherry picked from commit 2785774fc089d56986497b950035f82001e434f0)
When the lockscreen is in the screensaver mode we want the keyboard key
pressed to wake the screen to go to the password box textfield. This did
work correctly, but a code path also reset it when we get the first
prompt.
In the (currently hypothetical) case of multiple prompts we would want
to clear anything in the prompt.
This uses the existing boolean flag to handle that appropriately.
BUG: 454108
(cherry picked from commit 74a80aaac7)
Some actions, such as middle click to mute, trigger only on press. Some applets
also need a pressed-click because of some legacy autoclose on focus change
bug.
Unfortunately, QML does not disambiguate the "pressed" property and "pressed(mouse)"
signal with argument, so this has to be done awkwardly through QMetaObject on C++ side.
BUG: 426646
BUG: 452893
FIXED-IN: 5.25.0
(cherry picked from commit f045cf306c)
We can not use the required properties, because it breaks the property binding.
ec79af7396 apparently fixes that, however
it is not released as part of Qt6 or is part of the KDE patch collection.
This reverts commit f3293bc59e.
BUG: 453226
(cherry picked from commit 90d36545ea)
On the `load()` method emit the signals to notify that the properties
regarding accent colors have changed, so the UI gets updated accordingly.
They're emitted unconditionally since the minimal performance improvement
wouldn't compense the extra code complexity to check for changes here.
(cherry picked from commit 2b55732fb7)
This partially reverts commit d2bb480706.
Something unhealthy is going on with that lastIndex that prevents it
from functioning normally when currentIndex is bound to it from the
beginning. Maybe it just needs an on*Changed() signal, so that the
instantiator has already created its objects by that time? Session button
is different from keyboard layouts button which uses pre-baked QList as
its model.