mirror of
https://github.com/kbumsik/VirtScreen.git
synced 2025-03-09 15:40:18 +00:00
QML: added theme color preference
This commit is contained in:
parent
a0f29de12c
commit
db125fe7c5
4 changed files with 93 additions and 2 deletions
|
@ -1,4 +1,6 @@
|
|||
{
|
||||
"version": 0.1,
|
||||
"theme_color": 8,
|
||||
"virt": {
|
||||
"device": "VIRTUAL1",
|
||||
"width": 1368,
|
||||
|
|
|
@ -12,9 +12,10 @@ ApplicationWindow {
|
|||
flags: Qt.FramelessWindowHint
|
||||
title: "Basic layouts"
|
||||
|
||||
property int theme_color: settings.theme_color
|
||||
Material.theme: Material.Light
|
||||
Material.primary: Material.Teal
|
||||
Material.accent: Material.Teal
|
||||
Material.primary: theme_color
|
||||
Material.accent: theme_color
|
||||
// Material.background: Material.Grey
|
||||
|
||||
width: 380
|
||||
|
@ -53,6 +54,7 @@ ApplicationWindow {
|
|||
|
||||
Label {
|
||||
id: vncStateLabel
|
||||
color: "white"
|
||||
text: vncStateText.text
|
||||
}
|
||||
|
||||
|
@ -60,12 +62,28 @@ ApplicationWindow {
|
|||
id: menuButton
|
||||
anchors.right: parent.right
|
||||
text: qsTr("⋮")
|
||||
contentItem: Text {
|
||||
text: parent.text
|
||||
font: parent.font
|
||||
color: "white"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
onClicked: menu.open()
|
||||
|
||||
Menu {
|
||||
id: menu
|
||||
y: toolbar.height
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("&Preference")
|
||||
onTriggered: {
|
||||
preferenceLoader.active = true;
|
||||
}
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("&About")
|
||||
onTriggered: {
|
||||
|
@ -202,6 +220,17 @@ ApplicationWindow {
|
|||
}
|
||||
onRejected: passwordFIeld.text = ""
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: preferenceLoader
|
||||
active: false
|
||||
source: "preferenceDialog.qml"
|
||||
onLoaded: {
|
||||
item.onClosed.connect(function() {
|
||||
preferenceLoader.active = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
SwipeView {
|
||||
anchors.top: tabBar.bottom
|
||||
|
|
|
@ -2,6 +2,8 @@ import QtQuick 2.10
|
|||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
import VirtScreen.Backend 1.0
|
||||
|
||||
ColumnLayout {
|
||||
GroupBox {
|
||||
title: "Virtual Display"
|
||||
|
|
58
qml/preferenceDialog.qml
Normal file
58
qml/preferenceDialog.qml
Normal file
|
@ -0,0 +1,58 @@
|
|||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Controls.Material 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
Dialog {
|
||||
id: preferenceDialog
|
||||
title: "Preference"
|
||||
focus: true
|
||||
modal: true
|
||||
visible: true
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
x: (window.width - width) / 2
|
||||
y: (window.width - height) / 2
|
||||
width: popupWidth
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
RowLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
Label { id: themeColorLabel; text: "Theme Color"; }
|
||||
ComboBox {
|
||||
id: themeColorComboBox
|
||||
anchors.left: themeColorLabel.right
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: 50
|
||||
Material.background: currentIndex
|
||||
Material.foreground: "white"
|
||||
textRole: "name"
|
||||
model: [{"value": Material.Red, "name": "Red"}, {"value": Material.Pink, "name": "Pink"},
|
||||
{"value": Material.Purple, "name": "Purple"},{"value": Material.DeepPurple, "name": "DeepPurple"},
|
||||
{"value": Material.Indigo, "name": "Indigo"}, {"value": Material.Blue, "name": "Blue"},
|
||||
{"value": Material.LightBlue, "name": "LightBlue"}, {"value": Material.Cyan, "name": "Cyan"},
|
||||
{"value": Material.Teal, "name": "Teal"}, {"value": Material.Green, "name": "Green"},
|
||||
{"value": Material.LightGreen, "name": "LightGreen"}, {"value": Material.Lime, "name": "Lime"},
|
||||
{"value": Material.Yellow, "name": "Yellow"}, {"value": Material.Amber, "name": "Amber"},
|
||||
{"value": Material.Orange, "name": "Orange"}, {"value": Material.DeepOrange, "name": "DeepOrange"},
|
||||
{"value": Material.Brown, "name": "Brown"}, {"value": Material.Grey, "name": "Grey"},
|
||||
{"value": Material.BlueGrey, "name": "BlueGrey"}]
|
||||
currentIndex: settings.theme_color
|
||||
onActivated: function(index) {
|
||||
window.theme_color = index;
|
||||
settings.theme_color = index;
|
||||
}
|
||||
delegate: ItemDelegate {
|
||||
width: parent.width
|
||||
text: modelData.name + (themeColorComboBox.currentIndex === index ? " (Current)" : "")
|
||||
Material.foreground: "white"
|
||||
background: Rectangle {
|
||||
color: Material.color(modelData.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
onAccepted: {}
|
||||
onRejected: {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue