This commit is contained in:
inorishio
2026-03-13 16:28:03 +01:00
parent 8f427d06d0
commit 31df6a6cdf
9 changed files with 335 additions and 32 deletions
+12
View File
@@ -0,0 +1,12 @@
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
CustomRect {
id: root
Layout.fillWidth: true
Layout.preferredHeight: 1
color: DynamicColors.tPalette.m3outlineVariant
}
@@ -0,0 +1,65 @@
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
Item {
id: root
required property string name
required property var object
required property string setting
function formattedValue(): string {
const value = root.object[root.setting];
console.log(value);
if (value === null || value === undefined)
return "";
return String(value);
}
Layout.fillWidth: true
Layout.preferredHeight: row.implicitHeight + Appearance.padding.smaller * 2
RowLayout {
id: row
anchors.left: parent.left
anchors.margins: Appearance.padding.small
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
CustomText {
id: text
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
font.pointSize: Appearance.font.size.larger
text: root.name
}
CustomRect {
id: rect
Layout.preferredHeight: 33
Layout.preferredWidth: Math.max(Math.min(textField.contentWidth + Appearance.padding.normal * 3, 200), 50)
color: DynamicColors.tPalette.m3surface
radius: Appearance.rounding.small
CustomTextField {
id: textField
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
text: root.formattedValue()
onEditingFinished: {
root.object[root.setting] = textField.text;
Config.save();
}
}
}
}
}
+155
View File
@@ -0,0 +1,155 @@
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
Item {
id: root
required property list<var> modelData
required property string name
Layout.fillWidth: true
Layout.preferredHeight: row.implicitHeight + Appearance.padding.smaller * 2
RowLayout {
id: row
anchors.left: parent.left
anchors.margins: Appearance.padding.small
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
CustomText {
id: text
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
font.pointSize: Appearance.font.size.larger
text: root.name
}
VSeparator {
}
ColumnLayout {
id: cLayout
RowLayout {
id: timeLayout
Layout.fillWidth: true
CustomText {
id: timeText
Layout.fillWidth: true
text: root.modelData.name
}
CustomRect {
id: timeRect
Layout.preferredHeight: 33
Layout.preferredWidth: Math.max(Math.min(timeField.contentWidth + Appearance.padding.normal * 3, 200), 50)
color: DynamicColors.tPalette.m3surface
radius: Appearance.rounding.small
CustomTextField {
id: timeField
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
text: root.modelData.timeout
onEditingFinished: {
root.modelData.timeout = timeField.text;
Config.save();
}
}
}
}
Separator {
}
RowLayout {
id: idleLayout
Layout.fillWidth: true
CustomText {
id: idleText
Layout.fillWidth: true
text: root.modelData.name
}
CustomRect {
id: idleRect
Layout.preferredHeight: 33
Layout.preferredWidth: Math.max(Math.min(idleField.contentWidth + Appearance.padding.normal * 3, 200), 50)
color: DynamicColors.tPalette.m3surface
radius: Appearance.rounding.small
CustomTextField {
id: idleField
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
text: root.modelData.idleAction
onEditingFinished: {
root.modelData.idleAction = idleField.text;
Config.save();
}
}
}
}
Separator {
}
Loader {
id: loader
Layout.fillWidth: true
active: root.modelData.activeAction ?? false
RowLayout {
id: actionLayout
CustomText {
id: actionText
Layout.fillWidth: true
text: root.modelData.name
}
CustomRect {
id: actionRect
Layout.preferredHeight: 33
Layout.preferredWidth: Math.max(Math.min(actionField.contentWidth + Appearance.padding.normal * 3, 200), 50)
color: DynamicColors.tPalette.m3surface
radius: Appearance.rounding.small
CustomTextField {
id: actionField
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
text: root.modelData.activeAction
onEditingFinished: {
root.modelData.activeAction = actionField.text;
Config.save();
}
}
}
}
}
}
}
}
+25 -16
View File
@@ -3,7 +3,7 @@ import QtQuick.Layouts
import qs.Components
import qs.Config
RowLayout {
Item {
id: root
required property string name
@@ -11,26 +11,35 @@ RowLayout {
required property string setting
Layout.fillWidth: true
Layout.preferredHeight: 42
Layout.preferredHeight: row.implicitHeight + Appearance.padding.smaller * 2
CustomText {
id: text
RowLayout {
id: row
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
font.pointSize: 16
text: root.name
}
anchors.left: parent.left
anchors.margins: Appearance.padding.small
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
CustomSwitch {
id: cswitch
CustomText {
id: text
Layout.alignment: Qt.AlignRight
checked: root.object[root.setting]
Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
Layout.fillWidth: true
font.pointSize: Appearance.font.size.larger
text: root.name
}
onToggled: {
root.object[root.setting] = checked;
Config.save();
CustomSwitch {
id: cswitch
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
checked: root.object[root.setting]
onToggled: {
root.object[root.setting] = checked;
Config.save();
}
}
}
}
+12
View File
@@ -0,0 +1,12 @@
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
CustomRect {
id: root
Layout.fillHeight: true
Layout.preferredWidth: 1
color: DynamicColors.tPalette.m3outlineVariant
}