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.
This is the remaining part of the Klipper configuration dialogue,
the "Actions Configuration" page. Now that the options have been
moved to the "Popup" page, this is a simple tree view with action
buttons. The explanations and help links have been moved to the
"Edit Action" page, because that is where they are most applicable.
The "Action Properties" dialogue uses a QFormLayout, and includes
explanation text for the "Automatic" check box and the regexp help link.
Instead of editing in place, the "Edit" button opens a further dialogue
to edit the current entry. This is more discoverable and should be easier
on small displays than editing in place, although a double click is still
accepted. This dialogue has explanation text for substitutions.
The icon for a command can be set explicitly, for those cases where the
automatic detection (from the first word of the command) does not work.
Confirmation is requested when deleting a command or an action.
GUI:
I18N:
In the refactor we correctly made it so passwordless users were not
prompted for passwords.
This is in the right direction but the UX was still slightly off as it
meant wiggling the mouse unlocked the screen, not an explicit action.
This patch adds an explicit button that must be pressed if no other
prompts were given during the authentication process.
BUG: 440055
Use icu transliterator to convert i18n'ed name into ascii for initial
character grouping. Since AppsModel does not use group(), just use group
to store this value for convenience.
Relevant qt feature request for having a new mode for section:
https://bugreports.qt.io/browse/QTBUG-91258
Strategy used by this code mainly focused on CJK language.
1. Japanese locale will group all Han script together.
Katakana will be converted to hiragana.
2. Hangul will decompose and use consonant as group name.
3. Han will use icu "Han-Latin" transliteration to convert to pinyin.
BUG: 433297
Component.onCompleted blocks were unnecessary and redundant.
This patch also cleans up QML code style, and swaps visible/text lines to
make both buttons code more similar.