import qs.config import Quickshell import QtQuick import QtQuick.Layouts RowLayout { id: main property string title: "Title" property string description: "Description" property string prefField: '' ColumnLayout { StyledText { text: main.title; font.pixelSize: Metrics.fontSize(16); } StyledText { text: main.description; font.pixelSize: Metrics.fontSize(12); } } Item { Layout.fillWidth: true } StyledSwitch { // Safely resolve nested key (e.g. "background.showClock" or "bar.modules.some.setting") checked: { if (!main.prefField) return false; var parts = main.prefField.split('.'); var cur = Config.runtime; for (var i = 0; i < parts.length; ++i) { if (cur === undefined || cur === null) return false; cur = cur[parts[i]]; } // If the config value is undefined, default to false return cur === undefined || cur === null ? false : cur; } onToggled: { // Persist change (updateKey will create missing objects) Config.updateKey(main.prefField, checked); } } }