From b121767110de52ee0be9454dc08d840874362f3b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 19 Jul 2022 07:42:39 +0100 Subject: Revert "move : x11-themes/redcore-theme-sddm -> x11-themes/redcore-artwork-sddm" This reverts commit 104022dded3b0d2c3c785ea4d11d564defdee4d9. --- .../redcore-theme-sddm/files/redcore/Login.qml | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 x11-themes/redcore-theme-sddm/files/redcore/Login.qml (limited to 'x11-themes/redcore-theme-sddm/files/redcore/Login.qml') diff --git a/x11-themes/redcore-theme-sddm/files/redcore/Login.qml b/x11-themes/redcore-theme-sddm/files/redcore/Login.qml new file mode 100644 index 00000000..7234917f --- /dev/null +++ b/x11-themes/redcore-theme-sddm/files/redcore/Login.qml @@ -0,0 +1,156 @@ +import "components" + +import QtQuick 2.0 +import QtQuick.Layouts 1.2 +import QtQuick.Controls.Styles 1.4 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +SessionManagementScreen { + + property bool showUsernamePrompt: !showUserList + property int usernameFontSize + property string usernameFontColor + property string lastUserName + property bool passwordFieldOutlined: config.PasswordFieldOutlined == "true" + property bool hidePasswordRevealIcon: config.HidePasswordRevealIcon == "false" + property int visibleBoundary: mapFromItem(loginButton, 0, 0).y + onHeightChanged: visibleBoundary = mapFromItem(loginButton, 0, 0).y + loginButton.height + units.smallSpacing + + signal loginRequest(string username, string password) + + onShowUsernamePromptChanged: { + if (!showUsernamePrompt) { + lastUserName = "" + } + } + + /* + * Login has been requested with the following username and password + * If username field is visible, it will be taken from that, otherwise from the "name" property of the currentIndex + */ + function startLogin() { + var username = showUsernamePrompt ? userNameInput.text : userList.selectedUser + var password = passwordBox.text + + loginButton.forceActiveFocus(); + loginRequest(username, password); + } + + PlasmaComponents.TextField { + id: userNameInput + Layout.fillWidth: true + Layout.minimumHeight: 32 + implicitHeight: usernameFontSize * 2.85 + font.pointSize: usernameFontSize * 0.8 + font.family: config.Font || "Noto Sans" + opacity: 1.0 + text: lastUserName + visible: showUsernamePrompt + focus: showUsernamePrompt && !lastUserName //if there's a username prompt it gets focus first, otherwise password does + placeholderText: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Username") + + style: TextFieldStyle { + textColor: "white" + placeholderTextColor: "white" + background: Rectangle { + radius: 6 + border.color: "#1A73E8" + border.width: 2 + color: "#48316f" + } + } + } + + PlasmaComponents.TextField { + id: passwordBox + Layout.fillWidth: true + Layout.minimumHeight: 32 + implicitHeight: usernameFontSize * 2.85 + font.pointSize: usernameFontSize * 0.8 + opacity: passwordFieldOutlined ? 1.0 : 1.0 + font.family: config.Font || "Noto Sans" + placeholderText: config.PasswordFieldPlaceholderText == "Password" ? i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Password") : config.PasswordFieldPlaceholderText + focus: !showUsernamePrompt || lastUserName + echoMode: TextInput.Password + revealPasswordButtonShown: hidePasswordRevealIcon + onAccepted: startLogin() + + style: TextFieldStyle { + textColor: passwordFieldOutlined ? "white" : "white" + placeholderTextColor: passwordFieldOutlined ? "white" : "white" + passwordCharacter: config.PasswordFieldCharacter == "" ? "●" : config.PasswordFieldCharacter + background: Rectangle { + radius: 6 + border.color: "#1A73E8" + border.width: 2 + color: "#48316f" + } + } + + Keys.onEscapePressed: { + mainStack.currentItem.forceActiveFocus(); + } + + Keys.onPressed: { + if (event.key == Qt.Key_Left && !text) { + userList.decrementCurrentIndex(); + event.accepted = true + } + if (event.key == Qt.Key_Right && !text) { + userList.incrementCurrentIndex(); + event.accepted = true + } + } + + Keys.onReleased: { + if (loginButton.opacity == 0 && length > 0) { + showLoginButton.start() + } + if (loginButton.opacity > 0 && length == 0) { + hideLoginButton.start() + } + } + + Connections { + target: sddm + onLoginFailed: { + passwordBox.selectAll() + passwordBox.forceActiveFocus() + } + } + } + + Image { + id: loginButton + source: "assets/login.svgz" + smooth: true + sourceSize: Qt.size(passwordBox.height, passwordBox.height) + anchors { + left: passwordBox.right + verticalCenter: passwordBox.verticalCenter + } + anchors.leftMargin: 8 + visible: opacity > 0 + opacity: 0 + MouseArea { + anchors.fill: parent + onClicked: startLogin(); + } + PropertyAnimation { + id: showLoginButton + target: loginButton + properties: "opacity" + to: 0.75 + duration: 100 + } + PropertyAnimation { + id: hideLoginButton + target: loginButton + properties: "opacity" + to: 0 + duration: 80 + } + } +} -- cgit v1.2.3