Bug 514088 - Fingerprint enrollment dialogue missing "Add" button after cancelling on finger selection
Summary: Fingerprint enrollment dialogue missing "Add" button after cancelling on fing...
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_users (other bugs)
Version First Reported In: 6.5.4
Platform: Arch Linux Linux
: HI normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-02 20:33 UTC by deneb
Modified: 2026-01-12 21:40 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.5.5
Sentry Crash Report:


Attachments
Fingerprint enrollment dialogue without "Add" button (14.00 KB, image/png)
2026-01-02 20:33 UTC, deneb
Details

Note You need to log in before you can comment on or make changes to this bug.
Description deneb 2026-01-02 20:33:35 UTC
Created attachment 188165 [details]
Fingerprint enrollment dialogue without "Add" button

SUMMARY
When clicking "X" to back out of fingerprint enrollment on the finger selection screen (immediately after clicking "Add"), the next time one opens the dialog it does not have an "Add" button. It is then impossible to enroll a finger without fully closing+reopening the KCM.

STEPS TO REPRODUCE
1. Open systemsettings kcm_users
2. On the user page, click "Configure fingerprint authentication"
3. Press "Add"
4. Do not select a finger, but press "X" to close
5. Click "Configure fingerprint authentication" again

OBSERVED RESULT
The "Add" button at the bottom of the dialogue is missing (see attachment).

EXPECTED RESULT
The "Add" button remains accessible.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.5.4
KDE Frameworks Version: 6.21.0
Qt Version: 6.10.1
Kernel Version: 6.18.2-arch2-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen AI 7 PRO 350 w/ Radeon 860M
Memory: 32 GiB of RAM (30.5 GiB usable)
Graphics Processor: AMD Radeon 860M Graphics

ADDITIONAL INFORMATION
-
Comment 1 TraceyC 2026-01-06 22:34:04 UTC
I can reproduce this on Plasma built from git-master with the steps provided, on Solus
Comment 2 Bug Janitor Service 2026-01-07 14:40:14 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6148
Comment 3 cwo 2026-01-12 19:32:21 UTC
Git commit c6fd8d8b91a2b98f7edede4827daa772e7831287 by Christoph Wolk.
Committed on 12/01/2026 at 18:45.
Pushed by davidedmundson into branch 'master'.

kcms/users: reset dialog state on close button press

kcm_users has some shared dialog state handling between the C++ backend
and qml. Picking a finger is exclusively handled from the qml side, C++
does not interfere with this state (unless there is an error, in which
case it will reset the state to list). The only way out of this state in
qml is to actually pick a finger. The dialog (reasonably) has a close
button, which calls reject() on the dialog (Kirigami default), but
nothing actually binds to that so the dialog remains in the pick finger
state at least as far as the button row is concerned, which means no Add
button even though the displayed contents (handled independently) have
returned to the default list state. There's some logic to reset the
state, but only while enrolling - but we were still picking the finger,
not enrolling yet.

Instead, reset the state when reject is emitted. When calling
stopEnrolling, the backend will always reset the dialog state, but do
further actions only if actually enrolling (which we're not here).
FIXED-IN: 6.5.5

M  +1    -0    kcms/users/src/ui/FingerprintDialog.qml

https://invent.kde.org/plasma/plasma-workspace/-/commit/c6fd8d8b91a2b98f7edede4827daa772e7831287
Comment 4 cwo 2026-01-12 21:40:26 UTC
Git commit c06d7d595162a87d502706684956a93bd0414dff by Christoph Wolk.
Committed on 12/01/2026 at 19:35.
Pushed by cwo into branch 'Plasma/6.5'.

kcms/users: reset dialog state on close button press

kcm_users has some shared dialog state handling between the C++ backend
and qml. Picking a finger is exclusively handled from the qml side, C++
does not interfere with this state (unless there is an error, in which
case it will reset the state to list). The only way out of this state in
qml is to actually pick a finger. The dialog (reasonably) has a close
button, which calls reject() on the dialog (Kirigami default), but
nothing actually binds to that so the dialog remains in the pick finger
state at least as far as the button row is concerned, which means no Add
button even though the displayed contents (handled independently) have
returned to the default list state. There's some logic to reset the
state, but only while enrolling - but we were still picking the finger,
not enrolling yet.

Instead, reset the state when reject is emitted. When calling
stopEnrolling, the backend will always reset the dialog state, but do
further actions only if actually enrolling (which we're not here).
FIXED-IN: 6.5.5


(cherry picked from commit c6fd8d8b91a2b98f7edede4827daa772e7831287)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

M  +1    -0    kcms/users/src/ui/FingerprintDialog.qml

https://invent.kde.org/plasma/plasma-workspace/-/commit/c06d7d595162a87d502706684956a93bd0414dff