summaryrefslogtreecommitdiff
path: root/x11-themes/redcore-theme-sddm/files/redcore/Main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'x11-themes/redcore-theme-sddm/files/redcore/Main.qml')
-rw-r--r--x11-themes/redcore-theme-sddm/files/redcore/Main.qml275
1 files changed, 275 insertions, 0 deletions
diff --git a/x11-themes/redcore-theme-sddm/files/redcore/Main.qml b/x11-themes/redcore-theme-sddm/files/redcore/Main.qml
new file mode 100644
index 00000000..00feea4f
--- /dev/null
+++ b/x11-themes/redcore-theme-sddm/files/redcore/Main.qml
@@ -0,0 +1,275 @@
+/***************************************************************************
+* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
+*
+* 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 ${COMPONENTS_VERSION}
+import SddmComponents ${COMPONENTS_VERSION}
+
+Rectangle {
+ id: container
+ width: 640
+ height: 480
+
+ LayoutMirroring.enabled: Qt.locale().textDirection == Qt.RightToLeft
+ LayoutMirroring.childrenInherit: true
+
+ TextConstants { id: textConstants }
+
+ Connections {
+ target: sddm
+
+ onLoginSucceeded: {
+ errorMessage.color = "steelblue"
+ errorMessage.text = textConstants.loginSucceeded
+ }
+
+ onLoginFailed: {
+ password.text = ""
+ errorMessage.color = "red"
+ errorMessage.text = textConstants.loginFailed
+ }
+ }
+
+ Background {
+ anchors.fill: parent
+ source: config.background
+ fillMode: Image.PreserveAspectCrop
+ onStatusChanged: {
+ if (status == Image.Error && source != config.defaultBackground) {
+ source = config.defaultBackground
+ }
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: "transparent"
+ //visible: primaryScreen
+
+ 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(320, mainColumn.implicitWidth + 50)
+ height: Math.max(320, mainColumn.implicitHeight + 50)
+
+ source: "rectangle.png"
+
+ Column {
+ id: mainColumn
+ anchors.centerIn: parent
+ spacing: 12
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "black"
+ 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
+ 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
+ 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 / 2
+ z: 100
+
+ Column {
+ z: 100
+ width: parent.width * 1.3
+ spacing : 4
+ anchors.bottom: parent.bottom
+
+ Text {
+ id: lblSession
+ 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: layoutBox
+ }
+ }
+
+ Column {
+ z: 101
+ width: parent.width * 0.7
+ spacing : 4
+ anchors.bottom: parent.bottom
+
+ Text {
+ id: lblLayout
+ width: parent.width
+ text: textConstants.layout
+ wrapMode: TextEdit.WordWrap
+ font.bold: true
+ font.pixelSize: 12
+ }
+
+ LayoutBox {
+ id: layoutBox
+ width: parent.width; height: 30
+ font.pixelSize: 14
+
+ arrowIcon: "angle-down.png"
+
+ KeyNavigation.backtab: session; KeyNavigation.tab: loginButton
+ }
+ }
+ }
+
+ Column {
+ width: parent.width
+ Text {
+ id: errorMessage
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: textConstants.prompt
+ font.pixelSize: 10
+ }
+ }
+
+ 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: layoutBox; 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
+ }
+}