Files
2026-07-26 16:51:25 +03:00

94 lines
3.0 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Item {
id: root
property var settings
property var theme
implicitHeight: pageColumn.implicitHeight
ColumnLayout {
id: pageColumn
width: parent.width
spacing: 10
SettingsCard {
theme: root.theme
title: "Panel"
description: "The right-side full-height slide-out panel."
Layout.fillWidth: true
SettingsRow {
theme: root.theme
label: "Width"
SpinBox {
palette.base: root.theme.surfaceVariant
palette.text: root.theme.text
palette.button: root.theme.surfaceVariant
palette.buttonText: root.theme.text
from: 360
to: 720
value: root.settings.panelWidth
editable: true
onValueModified: root.settings.panelWidth = value
}
}
SettingsRow {
theme: root.theme
label: "Corner radius"
SpinBox {
palette.base: root.theme.surfaceVariant
palette.text: root.theme.text
palette.button: root.theme.surfaceVariant
palette.buttonText: root.theme.text
from: 8
to: 40
value: root.settings.panelRadius
editable: true
onValueModified: root.settings.panelRadius = value
}
}
SettingsRow {
theme: root.theme
label: "Opacity"
CCSlider {
theme: root.theme
implicitWidth: 130
from: 0.75
to: 1.0
value: root.settings.panelOpacity
onMoved: root.settings.panelOpacity = value
}
Label {
text: Math.round(root.settings.panelOpacity * 100) + "%"
color: root.theme.text
}
}
SettingsRow {
theme: root.theme
label: "Open from corner"
description: "A small top-right hot corner."
CCSwitch {
theme: root.theme
checked: root.settings.panelOpenOnCorner
onToggled: root.settings.panelOpenOnCorner = checked
}
}
}
SettingsCard {
theme: root.theme
title: "Motion"
description: "Content appears after the slide completes."
Layout.fillWidth: true
Label {
text: "The panel keeps its existing open/close animation and overlay dismissal."
color: root.theme.mutedText
wrapMode: Text.Wrap
Layout.fillWidth: true
}
}
}
}