Remove interaction with username and password fields on mouse and key press events for background videos
This commit is contained in:
		
							
								
								
									
										211
									
								
								Main.qml
									
									
									
									
									
								
							
							
						
						
									
										211
									
								
								Main.qml
									
									
									
									
									
								
							| @@ -20,6 +20,8 @@ Rectangle { | ||||
|     LayoutMirroring.enabled: Qt.locale().textDirection == Qt.RightToLeft | ||||
|     LayoutMirroring.childrenInherit: true | ||||
|  | ||||
|     property int sessionIndex: session.index | ||||
|  | ||||
|     // Inherited from SDDMComponents | ||||
|     TextConstants { | ||||
|         id: textConstants | ||||
| @@ -75,9 +77,23 @@ Rectangle { | ||||
|             id: mouseArea1 | ||||
|             anchors.fill: parent; | ||||
|             //onPressed: {playlist1.shuffle(); playlist1.next();} | ||||
|             onPressed: {} | ||||
|             onPressed: { | ||||
|                 fader1.state = fader1.state == "off" ? "on" : "off" ; | ||||
|                 if (config.autofocusInput == "true") { | ||||
|                     if (username_input_box.text == "") | ||||
|                         username_input_box.focus = true | ||||
|                     else | ||||
|                         password_input_box.focus = true | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         Keys.onPressed: { | ||||
|             fader1.state = "on"; | ||||
|             if (username_input_box.text == "") | ||||
|                 username_input_box.focus = true | ||||
|             else | ||||
|                 password_input_box.focus = true | ||||
|         } | ||||
|         Keys.onPressed: {} | ||||
|     } | ||||
|     WallpaperFader { | ||||
|         id: fader1 | ||||
| @@ -85,6 +101,8 @@ Rectangle { | ||||
|         anchors.fill: parent | ||||
|         state: "off" | ||||
|         source: video1 | ||||
|         mainStack: login_container | ||||
|         footer: login_container | ||||
|     } | ||||
|  | ||||
|     // Set Background Video2 | ||||
| @@ -106,10 +124,27 @@ Rectangle { | ||||
|             id: mouseArea2 | ||||
|             enabled: false | ||||
|             anchors.fill: parent; | ||||
|             onPressed: {} | ||||
|             onPressed: { | ||||
|                 fader1.state = fader1.state == "off" ? "on" : "off" ; | ||||
|                 if (config.autofocusInput == "true") { | ||||
|                     if (username_input_box.text == "") | ||||
|                         username_input_box.focus = true | ||||
|                     else | ||||
|                         password_input_box.focus = true | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         Behavior on opacity { | ||||
|             enabled: true | ||||
|             NumberAnimation { easing.type: Easing.InOutQuad; duration: 3000 } | ||||
|         } | ||||
|         Keys.onPressed: { | ||||
|             fader2.state = "on"; | ||||
|             if (username_input_box.text == "") | ||||
|                 username_input_box.focus = true | ||||
|             else | ||||
|                 password_input_box.focus = true | ||||
|         } | ||||
|         Behavior on opacity {} | ||||
|         Keys.onPressed: {} | ||||
|     } | ||||
|  | ||||
|     WallpaperFader { | ||||
| @@ -118,6 +153,8 @@ Rectangle { | ||||
|         anchors.fill: parent | ||||
|         state: "off" | ||||
|         source: video2 | ||||
|         mainStack: login_container | ||||
|         footer: login_container | ||||
|     } | ||||
|  | ||||
|     property MediaPlayer currentPlayer: mediaplayer1 | ||||
| @@ -217,6 +254,7 @@ Rectangle { | ||||
|             QQC2.StackView { | ||||
|                 id: mainStack | ||||
|                 anchors.fill: parent | ||||
|                 height: root.height + PlasmaCore.Units.gridUnit * 3 | ||||
|  | ||||
|                 // If true (depends on the style and environment variables), hover events are always accepted | ||||
|                 // and propagation stopped. This means the parent MouseArea won't get them and the UI won't be shown. | ||||
| @@ -255,6 +293,57 @@ Rectangle { | ||||
|  | ||||
|                         return userListModel.count <= userListModel.disableAvatarsThreshold && (userList.y + mainStack.y) > 0 | ||||
|                     } | ||||
|  | ||||
|                     notificationMessage: { | ||||
|                         var text = "" | ||||
|                         if (keystateSource.data["Caps Lock"]["Locked"]) { | ||||
|                             text += i18nd("plasma_lookandfeel_org.kde.lookandfeel","Caps Lock is on") | ||||
|                             if (root.notificationMessage) { | ||||
|                                 text += " • " | ||||
|                             } | ||||
|                         } | ||||
|                         text += root.notificationMessage | ||||
|                         return text | ||||
|                     } | ||||
|  | ||||
|                     actionItems: [ | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-suspend" | ||||
|                             text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.suspend() | ||||
|                             enabled: sddm.canSuspend | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-reboot" | ||||
|                             text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.reboot() | ||||
|                             enabled: sddm.canReboot | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-shutdown" | ||||
|                             text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.powerOff() | ||||
|                             enabled: sddm.canPowerOff | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-user-prompt" | ||||
|                             text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "For switching to a username and password prompt", "Other…") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: mainStack.push(userPromptComponent) | ||||
|                             enabled: true | ||||
|                             visible: !userListComponent.showUsernamePrompt && !inputPanel.keyboardActive | ||||
|                         }] | ||||
|  | ||||
|                     onLoginRequest: { | ||||
|                         //root.notificationMessage = "" | ||||
|                         sddm.login("sven", password, sessionButton.currentIndex) | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 Behavior on opacity { | ||||
| @@ -358,6 +447,11 @@ Rectangle { | ||||
|                             target: mainStack | ||||
|                             y: Math.min(0, root.height - inputPanel.height - userListComponent.visibleBoundary) | ||||
|                         } | ||||
|                         PropertyChanges { | ||||
|                             target: inputPanel | ||||
|                             y: root.height - inputPanel.height | ||||
|                             opacity: 1 | ||||
|                         } | ||||
|                     }, | ||||
|                     State { | ||||
|                         name: "hidden" | ||||
| @@ -365,6 +459,11 @@ Rectangle { | ||||
|                             target: mainStack | ||||
|                             y: 0 | ||||
|                         } | ||||
|                         PropertyChanges { | ||||
|                             target: inputPanel | ||||
|                             y: root.height - root.height/4 | ||||
|                             opacity: 0 | ||||
|                         } | ||||
|                     } | ||||
|                 ] | ||||
|                 transitions: [ | ||||
| @@ -372,6 +471,12 @@ Rectangle { | ||||
|                         from: "hidden" | ||||
|                         to: "visible" | ||||
|                         SequentialAnimation { | ||||
|                             ScriptAction { | ||||
|                                 script: { | ||||
|                                     inputPanel.item.activated = true; | ||||
|                                     Qt.inputMethod.show(); | ||||
|                                 } | ||||
|                             } | ||||
|                             ParallelAnimation { | ||||
|                                 NumberAnimation { | ||||
|                                     target: mainStack | ||||
| @@ -379,6 +484,17 @@ Rectangle { | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.InOutQuad | ||||
|                                 } | ||||
|                                 NumberAnimation { | ||||
|                                     target: inputPanel | ||||
|                                     property: "y" | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.OutQuad | ||||
|                                 } | ||||
|                                 OpacityAnimator { | ||||
|                                     target: inputPanel | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.OutQuad | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     }, | ||||
| @@ -393,6 +509,23 @@ Rectangle { | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.InOutQuad | ||||
|                                 } | ||||
|                                 NumberAnimation { | ||||
|                                     target: inputPanel | ||||
|                                     property: "y" | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.InQuad | ||||
|                                 } | ||||
|                                 OpacityAnimator { | ||||
|                                     target: inputPanel | ||||
|                                     duration: PlasmaCore.Units.longDuration | ||||
|                                     easing.type: Easing.InQuad | ||||
|                                 } | ||||
|                             } | ||||
|                             ScriptAction { | ||||
|                                 script: { | ||||
|                                     inputPanel.item.activated = false; | ||||
|                                     Qt.inputMethod.hide(); | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
| @@ -404,6 +537,7 @@ Rectangle { | ||||
|                 id: userPromptComponent | ||||
|                 Login { | ||||
|                     showUsernamePrompt: true | ||||
|                     notificationMessage: root.notificationMessage | ||||
|                     loginScreenUiVisible: loginScreenRoot.uiVisible | ||||
|                     fontSize: parseInt(config.fontSize) + 2 | ||||
|  | ||||
| @@ -418,6 +552,66 @@ Rectangle { | ||||
|                             setProperty(0, "name", i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Type in Username and Password")); | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     onLoginRequest: { | ||||
|                         root.notificationMessage = "" | ||||
|                         sddm.login(username, password, sessionButton.currentIndex) | ||||
|                     } | ||||
|  | ||||
|                     actionItems: [ | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-suspend" | ||||
|                             text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.suspend() | ||||
|                             enabled: sddm.canSuspend | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-reboot" | ||||
|                             text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.reboot() | ||||
|                             enabled: sddm.canReboot | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-shutdown" | ||||
|                             text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: sddm.powerOff() | ||||
|                             enabled: sddm.canPowerOff | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         }, | ||||
|                         ActionButton { | ||||
|                             iconSource: "system-user-list" | ||||
|                             text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","List Users") | ||||
|                             fontSize: parseInt(config.fontSize) + 1 | ||||
|                             onClicked: mainStack.pop() | ||||
|                             visible: !inputPanel.keyboardActive | ||||
|                         } | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             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: PlasmaCore.Units.longDuration | ||||
|                         easing.type: Easing.InOutQuad | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
| @@ -517,5 +711,12 @@ Rectangle { | ||||
|             playlist1.shuffle() | ||||
|             playlist2.shuffle() | ||||
|         } | ||||
|  | ||||
|         if (config.showLoginButton == "false") { | ||||
|             login_button.visible = false | ||||
|             password_input_box.anchors.rightMargin = 0 | ||||
|             clear_passwd_button.anchors.rightMargin = 0 | ||||
|         } | ||||
|         clear_passwd_button.visible = false | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user