The calendar plugin should not exist in plasma-framework as it uses GPL
license, not LGPL license.
The only change in this commit is org.kde.plasma.calendar is renamed to
org.kde.plasma.workspace.calendar
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.
"Tablet Mode" is jargon that can confuse users. In this mode, things
become larger as an optimization for touch usage, but the word "tablet"
could easily refer to a drawing tablet, for which no touch
optimizations make sense.
Let's change the UI text here to call it "Touch Mode" instead.
This allows me to build without the Qalculate dependency which is only
used for the calculator runner. Not having Qalculate installed will still
be an error unless the user explicitly passes
`-DCMAKE_DISABLE_FIND_PACKAGE_Qalculate=True`.
We can only access the QWidget's QWindow after it's been shown,
otherwise it's nullptr.
*8 QObject::installEventFilter(QObject*) (this=0x0, obj=0x561e5d7c6420) at qtbase/src/corelib/kernel/qobject.cpp:2218
*9 0x00007efbc06170dd in Klipper::showPopupMenu(QMenu*) (this=0x561e5d7c6420, menu=0x561e5fbb7c90) at plasma-workspace/klipper/klipper.cpp:407
BUG: 427530
Hunting this one down since mid-March...
In "native" Plasma containments like the panel, desktop, and plasmawindowed, the `LogindSessionBackend` in `libkworkspace` enters the "Ready" state nearly instantly, before any signals can even be attached. In other containments like Latte Dock and plasmoidviewer, however, the initialization takes some time to complete (unsure why). RootModel was not watching or waiting to check what the session backend's state was, resulting in validity checks being done too soon and never checked again.
kscreenlocker has a fallback UI loaded if the main QML from the LNF
fails.
As the main code is in a loader the lockscreen /always/ loads even if
the main contents can't be loaded. It also
contributes to a black flicker when loading the lockscreen.
The rationale for the loader was to make the window appear faster. This
hopefully isn't needed now we have the logind integration delaying the
sleep.
If it turns out this is feature desired it would be far more productive
to do this in the greeterapp c++ code. Show an empty QtQuick window and
then set the source on it later. It'd be far faster which would help towards
the original goal and allow us to check the loading.
This patch also removes the opacity fade as there's already an opacity
fade on contents when one moves the mouse when the "screensaver" like
code looks smoother.
BUG: 370676
FIXED-IN: 5.25
Before this commit ThemesModel only finds metadata.desktop, but after
KF5.94, the default theme metadata files have been ported to json format.
BUG: 453830
This is a stripped down version of customizable demo available at my
invent repo[1]. It is optimized for this particular use-case. Animation
honors right-to-left application layout and "instant animation speed"
preference.
[1]: https://invent.kde.org/ratijas/reject-input-animation/
When an applet is about to be deleted, it will save its config
automatically, but in this case the system tray doesn't need to load the
config again.
BUG: 453726
Because why not; and also because it makes for a nice flow when user
does not have a password set: just press Enter (twice, if focused on a
user list).
It was lost during refactoring some time ago, but the intention was
to give focus to the next item in focus chain assuming that's either a
username or a password field.
This patch is a less flexible but also less messy and more direct way to
achieve practically the same thing. Additionally, explicit Tab focus
reason gives a loginButton a nice visual focus which one would expect
to see instead of no visual changes. It was tempting to directly call
startLogin when password is not required, but that would be surprising
when the signal itself is triggered by the Escape key.
CCBUG: 336368
`void *` casts into anything but `QVariant::value()` (most of the time)
does a metatype check which needs to match.
Also, we need to unwrap the `QPointer`.
BUG: 453301