nosignal-shell/modules/lock/Content.qml
2 * r + 2 * t aea5795832
lock: add fprint support (#429)
* lock: add fprint support

* lock: better fprint detection

* lock: cap error retries

* nix: fix fprint pam for nix

* lock: reset fprint tries

* lock: minor pam fixes

Delay fprint error retries
Reset fprint error retries on lock

* lock: loading indicator passwd state

Instead of fprint state cause no way of detecting that

* dashboard: better visualiser

* lock: better fprint availability check

* lock: better in/out anim

Animating layout sizes is a bad idea :woe:
Use scale instead

* lock: add better error/fail messages

* lock: less fprint icon states

Already shown by message

* lock: fix fprint reset

* lock: include passwd pam

* lock: flash message on change

* lock: fix message anim

Also wrap message instead of eliding

* lock: better messages for no fprint
2025-08-23 20:43:04 +10:00

99 lines
2.2 KiB
QML

import qs.components
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts
RowLayout {
id: root
required property var lock
spacing: Appearance.spacing.large * 2
ColumnLayout {
Layout.fillWidth: true
spacing: Appearance.spacing.normal
StyledRect {
Layout.fillWidth: true
implicitHeight: weather.implicitHeight
topLeftRadius: Appearance.rounding.large
radius: Appearance.rounding.small
color: Colours.tPalette.m3surfaceContainer
WeatherInfo {
id: weather
rootHeight: root.height
}
}
StyledRect {
Layout.fillWidth: true
Layout.fillHeight: true
radius: Appearance.rounding.small
color: Colours.tPalette.m3surfaceContainer
Fetch {}
}
StyledClippingRect {
Layout.fillWidth: true
implicitHeight: media.implicitHeight
bottomLeftRadius: Appearance.rounding.large
radius: Appearance.rounding.small
color: Colours.tPalette.m3surfaceContainer
Media {
id: media
lock: root.lock
}
}
}
Center {
lock: root.lock
}
ColumnLayout {
Layout.fillWidth: true
spacing: Appearance.spacing.normal
StyledRect {
Layout.fillWidth: true
implicitHeight: resources.implicitHeight
topRightRadius: Appearance.rounding.large
radius: Appearance.rounding.small
color: Colours.tPalette.m3surfaceContainer
Resources {
id: resources
}
}
StyledRect {
Layout.fillWidth: true
Layout.fillHeight: true
bottomRightRadius: Appearance.rounding.large
radius: Appearance.rounding.small
color: Colours.tPalette.m3surfaceContainer
NotifDock {
lock: root.lock
}
}
}
component Anim: NumberAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}