sddm-patema/SessionFrame.qml

82 lines
2.3 KiB
QML
Raw Normal View History

2016-04-05 13:42:21 +02:00
import QtQuick 2.0
import QtGraphicalEffects 1.0
2016-04-05 17:13:59 +02:00
Item {
2016-04-05 13:42:21 +02:00
id: frame
signal selected(var index)
signal needClose()
property var sessionTypeList: ["deepin", "enlightenment", "fluxbox", "gnome", "kde", "lxde", "ubuntu"]
function getIconName(sessionName) {
for (var item in sessionTypeList) {
var str = sessionTypeList[item]
var index = sessionName.toLowerCase().indexOf(str)
if (index >= 0) {
return str
}
}
return "unknow"
}
2016-04-07 14:10:16 +02:00
function getCurrentSessionIconIndicator() {
return sessionList.currentItem.iconIndicator;
2016-04-05 13:42:21 +02:00
}
function isMultipleSessions() {
return sessionList.count > 1
}
ListView {
id: sessionList
anchors.centerIn: parent
width: childrenRect.width
height: 80
model: sessionModel
currentIndex: sessionModel.lastIndex
orientation: ListView.Horizontal
delegate: Item {
2016-04-07 14:10:16 +02:00
property string iconIndicator: iconButton.indicator
2016-04-05 13:42:21 +02:00
2016-04-07 14:10:16 +02:00
width: 250
height: 150
2016-04-05 13:42:21 +02:00
ImageButton {
id: iconButton
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
2016-04-07 14:10:16 +02:00
width: 100
height: 100
2016-04-05 13:42:21 +02:00
normalImg: ("%1normal.png").arg(prefix)
hoverImg: ("%1hover.png").arg(prefix)
pressImg: ("%1press.png").arg(prefix)
2016-04-07 14:10:16 +02:00
property var prefix: ("icons/sessionicon/%1_").arg(getIconName(name));
property var indicator: ("icons/%1_indicator_normal.png").arg(getIconName(name));
2016-04-05 13:42:21 +02:00
onClicked: {
selected(index)
sessionList.currentIndex = index
}
}
Text {
width: parent.width
anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
horizontalAlignment: Text.AlignHCenter
text: name
font.pointSize: 15
color: "white"
wrapMode: Text.WordWrap
}
}
}
MouseArea {
z: -1
anchors.fill: parent
onClicked: needClose()
}
}