From 771f681bb89fdf32e8d04176cd79840038974b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C3=A9cureuil?= Date: Sat, 13 Feb 2021 20:02:06 +0100 Subject: Add mga-coffee code --- Main.qml | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ README | 2 + angle-down.png | Bin 0 -> 196 bytes metadata.desktop | 13 +++ mgacoffee.png | Bin 0 -> 335938 bytes mgangle.png | Bin 0 -> 2260 bytes theme.conf | 2 + 7 files changed, 273 insertions(+) create mode 100644 Main.qml create mode 100644 README create mode 100644 angle-down.png create mode 100644 metadata.desktop create mode 100644 mgacoffee.png create mode 100644 mgangle.png create mode 100644 theme.conf 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 + +* 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 + } +} diff --git a/README b/README new file mode 100644 index 0000000..f1cec5b --- /dev/null +++ b/README @@ -0,0 +1,2 @@ +This theme is for the Simple Desktop Display Manager distribution and +based on the theme "malvides". diff --git a/angle-down.png b/angle-down.png new file mode 100644 index 0000000..4e9aeb0 Binary files /dev/null and b/angle-down.png differ diff --git a/metadata.desktop b/metadata.desktop new file mode 100644 index 0000000..ad883e1 --- /dev/null +++ b/metadata.desktop @@ -0,0 +1,13 @@ +[SddmGreeterTheme] +Name=Mageia +Description=Mageia Theme +Author=Mageia +License=CC-By-SA +Type=sddm-theme +Version=0.1 +Screenshot=mgacoffee.png +MainScript=Main.qml +ConfigFile=theme.conf +TranslationsDirectory=translations +Theme-Id=mageia-coffee +Theme-API=2.0 diff --git a/mgacoffee.png b/mgacoffee.png new file mode 100644 index 0000000..3ce4dd2 Binary files /dev/null and b/mgacoffee.png differ diff --git a/mgangle.png b/mgangle.png new file mode 100644 index 0000000..10e26aa Binary files /dev/null and b/mgangle.png differ diff --git a/theme.conf b/theme.conf new file mode 100644 index 0000000..6d3881c --- /dev/null +++ b/theme.conf @@ -0,0 +1,2 @@ +[General] +background=/usr/share/mga/backgrounds/default.jpg -- cgit v1.2.1