dotfiles/sddm-theme/test.qml
RafayAhmad7548 d9ce42fb84 sddm added
2025-01-01 08:16:50 +05:00

279 lines
7.7 KiB
QML

/***********************************************************************/
import QtQuick 2.0
import SddmComponents 2.0
Rectangle {
width: 640
height: 480
color: "black"
TextConstants { id: textConstants }
Connections {
target: sddm
onLoginSucceeded: {
errorMessage.color = "steelblue"
errorMessage.text = textConstants.loginSucceeded
}
onLoginFailed: {
errorMessage.color = "red"
errorMessage.text = textConstants.loginFailed
}
}
Repeater {
model: screenModel
Background {
x: geometry.x; y: geometry.y; width: geometry.width; height:geometry.height
source: config.background
fillMode: Image.Tile
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"
transformOrigin: Item.Top
Rectangle {
width: 300
height: 300
radius: 200
anchors.centerIn: parent
anchors.verticalCenterOffset: -300
color: "black"
// border.color: "#1793d1"
border.color: "white"
border.width: 5
Image {
id: archlogo
width: 175
height: 175
anchors.centerIn: parent
anchors.verticalCenterOffset: -10
fillMode: Image.PreserveAspectFit
transformOrigin: Item.Center
source: "archlinux.png"
}
}
Rectangle {
id: archlinux
anchors.centerIn: parent
height: 200
width: 600
// anchors.verticalCenterOffset: height * 2 / 3
anchors.verticalCenterOffset: 100
color: "#0C0C0C"
border.color: "#1793d1"
border.width: 5
radius: 50
Column {
id: mainColumn
anchors.centerIn: parent
width: parent.width * 0.9
spacing: 20
Row {
width: parent.width
spacing: Math.round(archlinux.height / 70)
Text {
id: lblName
width: parent.width * 0.20; height: archlinux.height / 4
color: "white"
text: textConstants.userName
verticalAlignment: Text.AlignVCenter
font.bold: true
font.pixelSize: 18
font.family: "HackNerdFont"
}
TextBox {
id: name
width: parent.width * 0.8; height: archlinux.height / 4
text: userModel.lastUser
font.pixelSize: 16
radius: 50
font.family: "HackNerdFont"
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
}
}
}
}
Row {
width: parent.width
spacing : Math.round(archlinux.height / 70)
Text {
id: lblPassword
width: parent.width * 0.2; height: archlinux.height / 4
color: "white"
text: textConstants.password
verticalAlignment: Text.AlignVCenter
font.bold: true
font.pixelSize: 18
font.family: "HackNerdFont"
}
PasswordBox {
id: password
width: parent.width * 0.8; height: archlinux.height / 4
font.pixelSize: 16
radius: 50
tooltipBG: "lightgrey"
focus: true
Timer {
interval: 200
running: true
onTriggered: password.forceActiveFocus()
}
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
}
}
}
}
}
}
}
// Session
Rectangle {
x: 50
y: 975
width: 225
height: 75
// spacing: 25
color: "black"
border.color: "#1793d1"
border.width: 3
radius: 50
Text {
id: lblSession
text: textConstants.session
verticalAlignment: Text.AlignVCenter
color: "white"
wrapMode: TextEdit.WordWrap
font.bold: true
font.pixelSize: 18
font.family: "HackNerdFont"
anchors.centerIn: parent
anchors.horizontalCenterOffset: -60
}
ComboBox {
id: session
width: 100
height: 25
font.pixelSize: 14
font.family: "HackNerdFont"
anchors.centerIn: parent
anchors.horizontalCenterOffset: 40
arrowIcon: "angle-down.png"
model: sessionModel
index: sessionModel.lastIndex
KeyNavigation.backtab: password; KeyNavigation.tab: layoutBox
}
}
// Buttons
Rectangle {
x: 1670
y: 975
width: 200
height: 75
color: "black"
border.color: "#1793d1"
border.width: 3
radius: 50
Button {
id: shutdownButton
width: 40
height: 40
text: ""
color: "black"
anchors.centerIn: parent
anchors.horizontalCenterOffset: 40
Image {
source: "shutdown.png"
fillMode: Image.PreserveAspectFit
anchors.fill: parent
}
onClicked: sddm.powerOff()
KeyNavigation.backtab: loginButton; KeyNavigation.tab: rebootButton
}
Button {
id: rebootButton
text: ""
width: 40
height: 40
color: "black"
anchors.centerIn: parent
anchors.horizontalCenterOffset: -40
Image {
source: "reboot.png"
fillMode: Image.PreserveAspectFit
anchors.fill: parent
}
onClicked: sddm.reboot()
KeyNavigation.backtab: shutdownButton; KeyNavigation.tab: name
}
}
Component.onCompleted: {
if (name.text == "")
name.focus = true
else
password.focus = true
}
}