// SettingsDialog.qml — Theme and font settings dialog import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 Dialog { id: root title: "Settings" anchors.centerIn: parent width: 380 modal: true standardButtons: Dialog.Close contentItem: ColumnLayout { spacing: 16 Layout.margins: 16 Label { text: "Color Scheme" font.bold: true } Label { text: "Uses KDE Breeze color schemes from /usr/share/color-schemes/" opacity: 0.6 wrapMode: Text.Wrap Layout.fillWidth: true font.pixelSize: Qt.application.font.pixelSize * 0.9 } ColumnLayout { spacing: 8 RadioButton { text: "Use system theme" checked: theme.mode === "system" onClicked: theme.mode = "system" } RadioButton { text: "Breeze Light" checked: theme.mode === "light" onClicked: theme.mode = "light" } RadioButton { text: "Breeze Dark" checked: theme.mode === "dark" onClicked: theme.mode = "dark" } } Label { text: theme.isDark ? "Current: dark" : "Current: light" opacity: 0.5 font.pixelSize: Qt.application.font.pixelSize * 0.85 } Rectangle { Layout.fillWidth: true height: 1 color: palette.mid Layout.topMargin: 8 } Label { text: "Font" font.bold: true } GridLayout { columns: 2 columnSpacing: 12 rowSpacing: 8 Layout.fillWidth: true Label { text: "Family:" } ComboBox { id: fontFamilyCombo Layout.fillWidth: true model: theme.availableFamilies editable: true currentIndex: { let fam = theme.fontFamily || Qt.application.font.family let idx = model.indexOf(fam) return idx >= 0 ? idx : 0 } onActivated: theme.fontFamily = currentText onAccepted: theme.fontFamily = editText } Label { text: "Style:" } ComboBox { id: fontStyleCombo Layout.fillWidth: true model: theme.availableStyles currentIndex: { let st = theme.fontStyle let idx = model.indexOf(st) return idx >= 0 ? idx : 0 } onActivated: theme.fontStyle = currentText } Label { text: "Size:" } SpinBox { id: fontSizeSpin from: 6 to: 72 value: theme.fontSize > 0 ? theme.fontSize : Qt.application.font.pointSize onValueModified: theme.fontSize = value } } Button { text: "Reset to system font" onClicked: theme.resetFont() } } }