From f2b238dc3cb3a539d8539a9ab8000bf8344d18a4 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 1 Aug 2025 16:23:04 -0500 Subject: [PATCH] Redo to not delete a bunch of stuff --- Login.qml | 122 +++++++++++++++++++++++++++--------------------------- Main.qml | 51 ++--------------------- 2 files changed, 65 insertions(+), 108 deletions(-) diff --git a/Login.qml b/Login.qml index 850a246..a9fdeb8 100644 --- a/Login.qml +++ b/Login.qml @@ -85,20 +85,6 @@ SessionManagementScreen { focus: showUsernamePrompt && !lastUserName //if there's a username prompt it gets focus first, otherwise password does placeholderText: i18nd("plasma-desktop-sddm-theme", "Username") - // Add padding for yellow border - leftPadding: Kirigami.Units.smallSpacing * 2 // ~8px padding - rightPadding: Kirigami.Units.smallSpacing * 2 - topPadding: Kirigami.Units.smallSpacing - bottomPadding: Kirigami.Units.smallSpacing - - // Custom background with yellow border and no fill - background: Rectangle { - color: "transparent" // No background fill - border.color: "#FFE710" // Yellow border - border.width: 3 // Border thickness - radius: 4 // Optional: slight rounding for aesthetics - } - onAccepted: { if (root.loginScreenUiVisible) { passwordBox.forceActiveFocus() @@ -106,63 +92,77 @@ SessionManagementScreen { } } - Rectangle { - width: 2560 - height: 1440 - color: "transparent" + RowLayout { + Layout.fillWidth: true - PlasmaExtras.PasswordField { - id: passwordBox - x: -330 - y: 243 - width: parent.width * 0.8 + Rectangle { + PlasmaExtras.PasswordField { + id: passwordBox + x: -470 + y: 248 + width: 945 + font.pointSize: fontSize + 20 + Layout.fillWidth: false - font.pointSize: fontSize + 20 + placeholderText: i18nd("plasma-desktop-sddm-theme", "Password") + focus: !showUsernamePrompt || lastUserName - placeholderText: i18nd("plasma-desktop-sddm-theme", "Password") + // Disable reveal password action because SDDM does not have the breeze icon set loaded + rightActions: [] - focus: !showUsernamePrompt || lastUserName - rightActions: [] - - leftPadding: Kirigami.Units.smallSpacing * 2 - rightPadding: Kirigami.Units.smallSpacing * 2 - topPadding: Kirigami.Units.smallSpacing - bottomPadding: Kirigami.Units.smallSpacing - - background: Rectangle { - color: "transparent" - } - - visible: root.showUsernamePrompt || userList.currentItem.needsPassword - - onAccepted: { - if (root.loginScreenUiVisible) { - startLogin(); + // Theming + background: Rectangle { + color: "transparent" } - } - Keys.onEscapePressed: { - mainStack.currentItem.forceActiveFocus(); - } - - Keys.onPressed: event => { - if (event.key === Qt.Key_Left && !text) { - userList.decrementCurrentIndex(); - event.accepted = true + onAccepted: { + if (root.loginScreenUiVisible) { + startLogin(); + } } - if (event.key === Qt.Key_Right && !text) { - userList.incrementCurrentIndex(); - event.accepted = true - } - } - Connections { - target: sddm - function onLoginFailed() { - passwordBox.selectAll() - passwordBox.forceActiveFocus() + visible: root.showUsernamePrompt || userList.currentItem.needsPassword + + Keys.onEscapePressed: { + mainStack.currentItem.forceActiveFocus(); + } + + //if empty and left or right is pressed change selection in user switch + //this cannot be in keys.onLeftPressed as then it doesn't reach the password box + Keys.onPressed: event => { + if (event.key === Qt.Key_Left && !text) { + userList.decrementCurrentIndex(); + event.accepted = true + } + if (event.key === Qt.Key_Right && !text) { + userList.incrementCurrentIndex(); + event.accepted = true + } + } + + Connections { + target: sddm + function onLoginFailed() { + passwordBox.selectAll() + passwordBox.forceActiveFocus() + } } } } + + PlasmaComponents3.Button { + id: loginButton + visible: false + Accessible.name: i18nd("plasma-desktop-sddm-theme", "Log In") + Layout.preferredHeight: passwordBox.implicitHeight + Layout.preferredWidth: text.length === 0 ? loginButton.Layout.preferredHeight : -1 + + icon.name: text.length === 0 ? (root.LayoutMirroring.enabled ? "go-previous" : "go-next") : "" + + text: root.showUsernamePrompt || userList.currentItem.needsPassword ? "" : i18n("Log In") + onClicked: startLogin() + Keys.onEnterPressed: clicked() + Keys.onReturnPressed: clicked() + } } } diff --git a/Main.qml b/Main.qml index cc275b7..ee15b59 100644 --- a/Main.qml +++ b/Main.qml @@ -133,6 +133,7 @@ Item { initialItem: Login { id: userListComponent + userList.opacity: 0 userListModel: userModel loginScreenUiVisible: loginScreenRoot.uiVisible userListCurrentIndex: userModel.lastIndex >= 0 ? userModel.lastIndex : 0 @@ -151,8 +152,6 @@ Item { return false } - userListComponent.userList.opacity = 0 - return userListModel.count <= userListModel.disableAvatarsThreshold } @@ -335,48 +334,6 @@ Item { } } - DropShadow { - id: logoShadow - anchors.fill: logo - source: logo - visible: !softwareRendering && config.showlogo === "shown" - horizontalOffset: 1 - verticalOffset: 1 - radius: 6 - samples: 14 - spread: 0.3 - color : "black" // shadows should always be black - opacity: loginScreenRoot.uiVisible ? 0 : 1 - Behavior on opacity { - //OpacityAnimator when starting from 0 is buggy (it shows one frame with opacity 1)" - NumberAnimation { - duration: Kirigami.Units.longDuration - easing.type: Easing.InOutQuad - } - } - } - - Image { - id: logo - visible: config.showlogo === "shown" - source: config.logo - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: footer.top - anchors.bottomMargin: Kirigami.Units.largeSpacing - asynchronous: true - sourceSize.height: height - opacity: loginScreenRoot.uiVisible ? 0 : 1 - fillMode: Image.PreserveAspectFit - height: Math.round(Kirigami.Units.gridUnit * 3.5) - Behavior on opacity { - // OpacityAnimator when starting from 0 is buggy (it shows one frame with opacity 1)" - NumberAnimation { - duration: Kirigami.Units.longDuration - easing.type: Easing.InOutQuad - } - } - } - // Note: Containment masks stretch clickable area of their buttons to // the screen edges, essentially making them adhere to Fitts's law. // Due to virtual keyboard button having an icon, buttons may have @@ -399,10 +356,10 @@ Item { } } - PlasmaComponents3.ToolButton { + /*PlasmaComponents3.ToolButton { id: virtualKeyboardButton - text: i18ndc("plasma-desktop-sddm-theme", "Button to show/hide virtual keyboard", "Virtual Keyboard") + text: i18ndc("plasma-desktop-sddm-theme", "Button to show/hide virtual keyboard") icon.name: inputPanel.keyboardActive ? "input-keyboard-virtual-on" : "input-keyboard-virtual-off" onClicked: { // Otherwise the password field loses focus and virtual keyboard @@ -419,7 +376,7 @@ Item { anchors.leftMargin: -footer.anchors.margins anchors.bottomMargin: -footer.anchors.margins } - } + }*/ KeyboardButton { id: keyboardButton