Warning, /plasma/kscreenlocker/greeter/fallbacktheme/Greeter.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2011 Martin Gräßlin <mgraesslin@kde.org> 0003 SPDX-FileCopyrightText: 2023 Nate Graham <nate@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 2.15 0009 import QtQuick.Layouts 1.15 0010 0011 import org.kde.kirigami 2.20 as Kirigami 0012 import org.kde.plasma.extras 2.0 as PlasmaExtras 0013 import org.kde.plasma.components 3.0 as PlasmaComponents3 0014 import org.kde.kscreenlocker 1.0 as ScreenLocker 0015 0016 Item { 0017 id: root 0018 0019 signal switchUserClicked() 0020 signal canceled() 0021 0022 property alias notification: message.text 0023 property bool switchUserEnabled 0024 property bool capsLockOn 0025 0026 function resetFocus() { 0027 password.forceActiveFocus(); 0028 } 0029 0030 implicitWidth: layoutItem.width + Kirigami.Units.largeSpacing * 2 0031 implicitHeight: layoutItem.height + Kirigami.Units.largeSpacing * 2 0032 0033 ColumnLayout { 0034 id: layoutItem 0035 anchors.centerIn: parent 0036 spacing: Kirigami.Units.largeSpacing 0037 0038 PlasmaComponents3.Label { 0039 id: message 0040 Layout.fillWidth: true 0041 horizontalAlignment: Text.AlignHCenter 0042 elide: Text.ElideRight 0043 text: "" 0044 font.bold: true 0045 0046 visible: opacity > 0 0047 opacity: text == "" ? 0 : 1 0048 Behavior on opacity { 0049 NumberAnimation { 0050 duration: Kirigami.Units.longDuration 0051 } 0052 } 0053 } 0054 0055 PlasmaComponents3.Label { 0056 Layout.fillWidth: true 0057 horizontalAlignment: Text.AlignHCenter 0058 elide: Text.ElideRight 0059 text: i18n("Warning: Caps Lock on") 0060 font.bold: true 0061 0062 visible: opacity > 0 0063 opacity: root.capsLockOn ? 1 : 0 0064 Behavior on opacity { 0065 NumberAnimation { 0066 duration: Kirigami.Units.longDuration 0067 } 0068 } 0069 } 0070 0071 PlasmaComponents3.Label { 0072 Layout.fillWidth: true 0073 horizontalAlignment: Text.AlignHCenter 0074 elide: Text.ElideRight 0075 text: kscreenlocker_userName.length == 0 ? i18nd("kscreenlocker_greet", "The session is locked") : 0076 i18nd("kscreenlocker_greet", "The session has been locked by %1", kscreenlocker_userName) 0077 } 0078 PlasmaExtras.PasswordField { 0079 id: password 0080 Layout.alignment: Qt.AlignHCenter 0081 implicitWidth: Kirigami.Units.gridUnit * 15 0082 enabled: !authenticator.busy 0083 Keys.onEnterPressed: authenticator.startAuthenticating() 0084 Keys.onReturnPressed: authenticator.startAuthenticating() 0085 Keys.onEscapePressed: password.text = "" 0086 } 0087 0088 PlasmaComponents3.Label { 0089 visible: authenticator.authenticatorTypes & ScreenLocker.Authenticator.Fingerprint 0090 text: i18nd("kscreenlocker_greet", "(or place your fingerprint on the reader)") 0091 Layout.fillWidth: true 0092 } 0093 0094 PlasmaComponents3.Label { 0095 visible: authenticator.authenticatorTypes & ScreenLocker.Authenticator.Smartcard 0096 text: i18nd("kscreenlocker_greet", "(or use your smartcard)") 0097 Layout.fillWidth: true 0098 } 0099 0100 RowLayout { 0101 Layout.alignment: Qt.AlignHCenter 0102 spacing: Kirigami.Units.largeSpacing 0103 0104 PlasmaComponents3.Button { 0105 text: i18nd("kscreenlocker_greet", "&Switch Users") 0106 icon.name: "system-switch-user" 0107 visible: root.switchUserEnabled 0108 onClicked: switchUserClicked() 0109 } 0110 0111 PlasmaComponents3.Button { 0112 text: i18nd("kscreenlocker_greet", "Un&lock") 0113 icon.name: "unlock" 0114 enabled: !authenticator.graceLocked 0115 onClicked: authenticator.startAuthenticating() 0116 } 0117 } 0118 } 0119 0120 Connections { 0121 target: authenticator 0122 0123 function onFailed() { 0124 root.notification = i18nd("kscreenlocker_greet", "Unlocking failed"); 0125 } 0126 function onBusyChanged() { 0127 if (!authenticator.busy) { 0128 root.notification = ""; 0129 password.selectAll(); 0130 root.resetFocus(); 0131 } 0132 } 0133 function onInfoMessageChanged() { 0134 root.notification = Qt.binding(() => authenticator.infoMessage); 0135 } 0136 function onErrorMessageChanged() { 0137 root.notification = Qt.binding(() => authenticator.errorMessage); 0138 } 0139 function onPromptForSecretChanged() { 0140 authenticator.respond(password.text); 0141 } 0142 function onSucceeded() { 0143 Qt.quit() 0144 } 0145 } 0146 0147 Component.onCompleted: { 0148 root.resetFocus(); 0149 } 0150 }