It still look far too alien comparing to a native PlasmaDialog style due
to the positioning, fractional scaling sizing issues and background
differences. This commit brings them somehow closer to each other.
The current UI does not communicate to the user at what times these UI
elements will be shown, leading to confusion. People are thinking that
unchecking the Clock checkbox always hides it, but this is not the
case; instead it hides the clock only when the main UI is invisible.
To address this, the wordings of the checkbox labels are changed to
indicate what the opposite states will do as well.
BUG: 429468
FIXED-IN: 5.26
This bug was introduced by plasma/plasma-workspace!1754.
`lockScreenUi.hadPrompt` was set to `false` in `onFailed()` to avoid
unintentionally clearing the password after the text field had faded
out after 10 seconds and the user pressed a button. Unfortunately this
also caused the password field to not clear right after the failed event.
So instead the statement is moved into the trigger of `fadeoutTimer` which
fixes both issues.
BUG: 455227
FIXED-IN: 5.25.3
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
When running this:
~/kde/usr/lib/libexec/kscreenlocker_greet --testing --theme ~/kde/src/plasma-workspace/lookandfeel
it used to generate error like this:
/usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/components/UserList.qml:61:9: Unable to assign [undefined] to bool
Because not every users list model provides all the properties that
delegate expected.
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
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
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
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/
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
Amends c067d4985a.
Having `preferredWidth: 1` set on an only item that also stretches with
fillWidth AND without top-to-bottom sizing (fixed size imposed by
parent component) doesn't really make sense. It naturally increased row
layout's implicitWidth by only 1, and that value were used as an input
to the final width expression (bottom-up sizing).
This patch fixes the sizing model to be strictly implicit bottom-up and
explicit top-down, and so the slider no longer collapses.
BUG: 446185
Using "preferred" layout size as a source of truth is more correct than
choosing between minimum and maximum sizes for that same purpose. This
does not technically fix or impact anything per se; just makes the code
slightly better.
having the width entirely dependent on the implicit size of the content
has the unfortunate side effect that a window can become insanely wide.
instead cap the minimum width at a percentage of the screen width.
shrinking beyond that cap then only allows dimension changes in height,
not width. this allows the content items to adjust accordingly (e.g.
labels would be forced to wrap).
NB: height is intentionally uncapped because we need somewhere to put
the "overflow" content
otherwise the dialog may be shrunk beyond the space that the buttonbox
desires resulting in cut off buttons (only when the mainItem is small
enough, naturally)
Currently on the login/logout/lock screens, there is almost no spacing between
the avatar and username, which makes the user' delegate looks too tight.This MR
fixes this issue.
This is a follow-up Merge Request to https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1043 to give Breeze a Desktop Layout file... so that it actually gets identified as having one.
It's just a simple script that adds Breeze's Panel and default Desktop Background engine... which results in the Vanilla KDE Plasma layout and settings you know and love when used.
This merge request does not need the MR it is a follow-up of, however it's redundant without that MR being merged.
<h1>Screenshots</h1>
<h2>Desktop Layout on its own, with appearance settings applied from Graphite Dark's Global Theme</h2>

<h2>Full Breeze (Appearance + Layout)</h2>

Currently, the spacing between the user delegate and the action buttons is is very small compared to the spacing between the action buttons and the OK-Cancel buttons, which makes the logout screen look awkward. This MR fixes this issue.