add theme switcher
This commit is contained in:
parent
143889683b
commit
d69ec48728
9 changed files with 126 additions and 68 deletions
|
|
@ -9,14 +9,14 @@ import qs
|
|||
import qs.settings
|
||||
import qs.widgets
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.AllButtons
|
||||
}
|
||||
clip: true
|
||||
FloatingWindow {
|
||||
id: child
|
||||
implicitWidth: 800
|
||||
implicitHeight: 600
|
||||
visible: Config.cfg.themeSwitcherVisible
|
||||
color: Colors.base00
|
||||
title: "qs-themepicker"
|
||||
onClosed: Config.cfg.themeSwitcherVisible = false
|
||||
Process {
|
||||
id: getSchemes
|
||||
property list<string> schemes
|
||||
|
|
@ -28,20 +28,62 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
}
|
||||
ListView {
|
||||
id: schemeList
|
||||
orientation: ListView.Horizontal
|
||||
anchors.fill: root
|
||||
model: getSchemes.schemes
|
||||
delegate: Rectangle {
|
||||
id: container
|
||||
required property string modelData
|
||||
color: Colors.base01
|
||||
height: 30
|
||||
implicitWidth: schemeName.width + 16
|
||||
Rectangle {
|
||||
anchors.fill: child.contentItem
|
||||
anchors.centerIn: child.contentItem
|
||||
anchors.margins: 10
|
||||
radius: Config.cfg.appearance.rounding / 1.5
|
||||
color: Colors.base01
|
||||
clip: true
|
||||
RowLayout {
|
||||
id: contentLayout
|
||||
anchors.fill: parent
|
||||
ListView {
|
||||
id: schemeList
|
||||
spacing: 5
|
||||
Layout.fillHeight: true
|
||||
model: getSchemes.schemes
|
||||
implicitWidth: 300
|
||||
delegate: Rectangle {
|
||||
id: container
|
||||
required property string modelData
|
||||
color: Colors.base02
|
||||
height: 30
|
||||
radius: Config.cfg.appearance.rounding
|
||||
implicitWidth: 300
|
||||
StyledText {
|
||||
id: schemeName
|
||||
anchors.centerIn: parent
|
||||
text: container.modelData
|
||||
}
|
||||
MouseArea {
|
||||
id: schemeSetter
|
||||
anchors.fill: container
|
||||
acceptedButtons: Qt.LeftButton
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onClicked: {
|
||||
setTheme.themeName = modelData;
|
||||
setTheme.running = true;
|
||||
}
|
||||
Process {
|
||||
id: setTheme
|
||||
property string themeName
|
||||
command: ["tinty", "apply", themeName]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
StyledText {
|
||||
id: schemeName
|
||||
text: container.modelData
|
||||
id: currentScheme
|
||||
text: ""
|
||||
Process {
|
||||
id: getCurrentScheme
|
||||
command: ["tinty", "current"]
|
||||
running: true
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: currentScheme.text = text
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue