152 lines
3.8 KiB
QML
152 lines
3.8 KiB
QML
import QtQuick
|
|
import QtQuick.Window
|
|
import QtQuick.Controls
|
|
import QtQuick.Controls.Material
|
|
import QtQuick.Layouts
|
|
|
|
|
|
Window {
|
|
id: windowPreferences
|
|
|
|
width: 450
|
|
height: 400
|
|
|
|
Component.onCompleted: {
|
|
x = Screen.width / 2 - width / 2
|
|
y = Screen.height / 2 - height / 2
|
|
}
|
|
|
|
modality: Qt.ApplicationModal
|
|
flags: Qt.Window
|
|
|
|
title: qsTr("Artemis - Preferences")
|
|
|
|
signal saveMaterialAccent(string arg)
|
|
signal saveMaterialTheme(string arg)
|
|
|
|
function saveAll() {
|
|
saveMaterialAccent(comboBoxAccent.currentText)
|
|
saveMaterialTheme(comboBoxTheme.currentText)
|
|
}
|
|
|
|
function loadMaterialAccent(accent) {
|
|
for (var idx = 0; idx < comboBoxAccent.count; idx ++) {
|
|
if (accent === comboBoxAccent.valueAt(idx)) {
|
|
comboBoxAccent.currentIndex = idx
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
function loadMaterialTheme(theme) {
|
|
for (var idx = 0; idx < comboBoxTheme.count; idx ++) {
|
|
if (theme === comboBoxTheme.valueAt(idx)) {
|
|
comboBoxTheme.currentIndex = idx
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
DialogMessage {
|
|
id: dialogPreferencesSaved
|
|
modal: true
|
|
|
|
title: "Preferences saved!"
|
|
message: "User preferences has been saved succesfully! Artemis restart is require for changes to take effect."
|
|
|
|
standardButtons: Dialog.Ok
|
|
|
|
onAccepted: {
|
|
windowPreferences.close()
|
|
}
|
|
}
|
|
|
|
|
|
Pane {
|
|
anchors.fill: parent
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
anchors.rightMargin: 15
|
|
anchors.leftMargin: 15
|
|
anchors.bottomMargin: 15
|
|
anchors.topMargin: 15
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
|
|
Label {
|
|
text: "Material Theme"
|
|
font.pixelSize: 12
|
|
clip: true
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
ComboBox {
|
|
id: comboBoxTheme
|
|
width: 137
|
|
height: 48
|
|
model: [
|
|
"System",
|
|
"Light",
|
|
"Dark"
|
|
]
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
|
|
Label {
|
|
text: "Material Accent"
|
|
font.pixelSize: 12
|
|
clip: true
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
ComboBox {
|
|
id: comboBoxAccent
|
|
width: 137
|
|
height: 48
|
|
model: [
|
|
"Red",
|
|
"Pink",
|
|
"Purple",
|
|
"DeepPurple",
|
|
"Indigo",
|
|
"Blue",
|
|
"LightBlue",
|
|
"Cyan",
|
|
"Teal",
|
|
"Green",
|
|
"LightGreen",
|
|
"Lime",
|
|
"Yellow",
|
|
"Amber",
|
|
"Orange",
|
|
"DeepOrange",
|
|
"Brown",
|
|
"Grey",
|
|
"BlueGrey"
|
|
]
|
|
}
|
|
}
|
|
|
|
Item {
|
|
Layout.fillHeight: true
|
|
}
|
|
|
|
Button {
|
|
text: qsTr("Save")
|
|
icon.source: "qrc:/images/icons/save.svg"
|
|
display: AbstractButton.TextBesideIcon
|
|
Layout.alignment: Qt.AlignRight | Qt.AlignBottom
|
|
onClicked: {
|
|
saveAll()
|
|
dialogPreferencesSaved.open()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|