You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
2.6 KiB
129 lines
2.6 KiB
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
|
|
import Eden.Constants
|
|
import Eden.Items
|
|
import Eden.Interface
|
|
import Eden.Util
|
|
|
|
import Carboxyl.Base
|
|
|
|
Dialog {
|
|
property list<var> configs
|
|
|
|
popupType: Dialog.Native
|
|
|
|
anchors.centerIn: Overlay.overlay
|
|
|
|
implicitWidth: 1000
|
|
implicitHeight: 700
|
|
|
|
padding: 5
|
|
|
|
title: qsTr("Configuration")
|
|
standardButtons: Dialog.Ok | Dialog.Apply | Dialog.Cancel
|
|
|
|
Component.onCompleted: configs = Util.searchItem(swipe, "PageScrollView")
|
|
|
|
function applyConfigs() {
|
|
configs.forEach(config => {
|
|
config.apply()
|
|
})
|
|
|
|
// console.log("Saving")
|
|
QtConfig.save()
|
|
}
|
|
|
|
onAccepted: {
|
|
applyConfigs()
|
|
|
|
if (EdenApplication.shouldReload) {
|
|
EdenApplication.shouldReload = false
|
|
EdenApplication.reload()
|
|
}
|
|
}
|
|
|
|
onApplied: {
|
|
applyConfigs()
|
|
}
|
|
|
|
onRejected: {
|
|
|
|
// TODO
|
|
// configs.forEach(config => config.sync())
|
|
// QtConfig.reload()
|
|
}
|
|
|
|
CarboxylTabBar {
|
|
id: tabBar
|
|
vertical: true
|
|
|
|
// TODO: style-dependent
|
|
property int topMargin: 45
|
|
|
|
anchors {
|
|
top: parent.top
|
|
topMargin: tabBar.topMargin
|
|
|
|
left: parent.left
|
|
leftMargin: 0
|
|
}
|
|
|
|
height: Math.min(contentHeight * count + 20,
|
|
parent.height - tabBar.topMargin)
|
|
contentWidth: 85
|
|
contentHeight: 55
|
|
|
|
position: TabBar.Footer
|
|
|
|
currentIndex: swipe.currentIndex
|
|
|
|
width: contentWidth
|
|
|
|
clip: true
|
|
|
|
Repeater {
|
|
model: [qsTr("General"), qsTr("System"), qsTr("CPU"), qsTr(
|
|
"Graphics"), qsTr("Audio"), qsTr("Debug"), qsTr("Controls")]
|
|
|
|
CarboxylTabButton {
|
|
text: modelData
|
|
coloredIcon: true
|
|
inlineIcon: true
|
|
|
|
icon.source: "qrc:/icons/" + modelData.toLowerCase() + ".svg"
|
|
icon.width: 20
|
|
icon.height: 20
|
|
}
|
|
}
|
|
}
|
|
SwipeView {
|
|
id: swipe
|
|
currentIndex: tabBar.currentIndex
|
|
|
|
width: 1000
|
|
height: 700
|
|
|
|
interactive: false
|
|
|
|
orientation: Qt.Vertical
|
|
anchors {
|
|
left: tabBar.right
|
|
right: parent.right
|
|
top: parent.top
|
|
bottom: parent.bottom
|
|
|
|
leftMargin: 0
|
|
}
|
|
|
|
clip: true
|
|
|
|
GlobalGeneralPage {}
|
|
GlobalSystemPage {}
|
|
GlobalCpuPage {}
|
|
GlobalGraphicsPage {}
|
|
GlobalAudioPage {}
|
|
GlobalDebugPage {}
|
|
}
|
|
}
|