diff options
Diffstat (limited to 'Main.qml')
-rw-r--r-- | Main.qml | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/Main.qml b/Main.qml new file mode 100644 index 0000000..e3f3a11 --- /dev/null +++ b/Main.qml @@ -0,0 +1,256 @@ +/*************************************************************************** +* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com> + +* Modified for mga6 by eatdirt@mageia.org + +* Permission is hereby granted, free of charge, to any person +* obtaining a copy of this software and associated documentation +* files (the "Software"), to deal in the Software without restriction, +* including without limitation the rights to use, copy, modify, merge, +* publish, distribute, sublicense, and/or sell copies of the Software, +* and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +* OR OTHER DEALINGS IN THE SOFTWARE. +* +***************************************************************************/ + +import QtQuick 2.0 +import SddmComponents 2.0 + +Rectangle { + id: container + width: 760 + height: 480 + + TextConstants { id: textConstants } + + Connections { + target: sddm + + onLoginSucceeded: { + errorMessage.color = "steelblue" + errorMessage.text = textConstants.loginSucceeded + } + + onLoginFailed: { + errorMessage.color = "red" + errorMessage.text = textConstants.loginFailed + password.text = "" + } + } + + Repeater { + model: screenModel + Background { + x: geometry.x; y: geometry.y; width: geometry.width; height:geometry.height + source: config.background + fillMode: Image.PreserveAspectCrop + onStatusChanged: { + if (status == Image.Error && source != config.defaultBackground) { + source = config.defaultBackground + } + } + } + } + + Rectangle { + property variant geometry: screenModel.geometry(screenModel.primary) + x: geometry.x; y: geometry.y; width: geometry.width; height: geometry.height + color: "transparent" + + Clock { + id: clock + anchors.margins: 5 + anchors.top: parent.top; anchors.right: parent.right + + color: "white" + timeFont.family: "Oxygen" + } + + Image { + id: rectangle + anchors.centerIn: parent + width: Math.max(608, mainColumn.implicitWidth + 50) + height: Math.max(384, mainColumn.implicitHeight + 50) + + source: "mgangle.png" + + Column { + id: mainColumn + anchors.centerIn: parent + spacing: 12 + Text { + anchors.horizontalCenter: parent.horizontalCenter + color: "white" + verticalAlignment: Text.AlignVCenter + height: text.implicitHeight + width: parent.width + text: textConstants.welcomeText.arg(sddm.hostName) + wrapMode: Text.WordWrap + font.pixelSize: 24 + elide: Text.ElideRight + horizontalAlignment: Text.AlignHCenter + } + + Column { + width: parent.width + spacing: 4 + Text { + id: lblName + color: "white" + width: parent.width + text: textConstants.userName + font.bold: true + font.pixelSize: 12 + } + + TextBox { + id: name + width: parent.width; height: 30 + text: userModel.lastUser + font.pixelSize: 14 + + KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password + + Keys.onPressed: { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, session.index) + event.accepted = true + } + } + } + } + + Column { + width: parent.width + spacing : 4 + Text { + id: lblPassword + color: "white" + width: parent.width + text: textConstants.password + font.bold: true + font.pixelSize: 12 + } + + PasswordBox { + id: password + width: parent.width; height: 30 + font.pixelSize: 14 + + KeyNavigation.backtab: name; KeyNavigation.tab: session + + Keys.onPressed: { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, session.index) + event.accepted = true + } + } + } + } + + Row { + spacing: 4 + width: parent.width + z: 100 + + Column { + z: 100 + width: parent.width + spacing : 4 + anchors.bottom: parent.bottom + + Text { + id: lblSession + color: "white" + width: parent.width + text: textConstants.session + wrapMode: TextEdit.WordWrap + font.bold: true + font.pixelSize: 12 + } + + ComboBox { + id: session + width: parent.width; height: 30 + font.pixelSize: 14 + + arrowIcon: "angle-down.png" + + model: sessionModel + index: sessionModel.lastIndex + + KeyNavigation.backtab: password; KeyNavigation.tab: loginButton + } + } + + + } + + Column { + Text { + id: errorMessage + color: "white" + anchors.horizontalCenter: parent.horizontalCenter + text: textConstants.prompt + font.pixelSize: 12 + } + } + + Row { + spacing: 4 + anchors.horizontalCenter: parent.horizontalCenter + property int btnWidth: Math.max(loginButton.implicitWidth, + shutdownButton.implicitWidth, + rebootButton.implicitWidth, 80) + 8 + Button { + id: loginButton + text: textConstants.login + width: parent.btnWidth + + onClicked: sddm.login(name.text, password.text, session.index) + + KeyNavigation.backtab: session; KeyNavigation.tab: shutdownButton + } + + Button { + id: shutdownButton + text: textConstants.shutdown + width: parent.btnWidth + + onClicked: sddm.powerOff() + + KeyNavigation.backtab: loginButton; KeyNavigation.tab: rebootButton + } + + Button { + id: rebootButton + text: textConstants.reboot + width: parent.btnWidth + + onClicked: sddm.reboot() + + KeyNavigation.backtab: shutdownButton; KeyNavigation.tab: name + } + } + } + } + } + + Component.onCompleted: { + if (name.text == "") + name.focus = true + else + password.focus = true + } +} |