modular quick toggles
This commit is contained in:
@@ -9,6 +9,16 @@ import qs.Modules.Settings.Common
|
||||
PageBase {
|
||||
id: root
|
||||
|
||||
readonly property var builtinIcons: ({
|
||||
audio: qsTr("Toggle audio"),
|
||||
mic: qsTr("Toggle microphone"),
|
||||
settings: qsTr("Open settings"),
|
||||
dnd: qsTr("Toggle Do-Not-Disturb"),
|
||||
gameMode: qsTr("Toggle game mode"),
|
||||
bluetooth: qsTr("Toggle bluetooth"),
|
||||
wifi: qsTr("Toggle Wi-Fi")
|
||||
})
|
||||
|
||||
isSubPage: true
|
||||
title: qsTr("Sidebar")
|
||||
|
||||
@@ -44,5 +54,59 @@ PageBase {
|
||||
|
||||
onMoved: v => Config.sidebar.dragThreshold = v
|
||||
}
|
||||
|
||||
SectionHeader {
|
||||
text: qsTr("Quick toggles")
|
||||
}
|
||||
|
||||
ListEditor {
|
||||
function labelFor(item: var): string {
|
||||
const prettyName = root.builtinIcons[item.id];
|
||||
if (prettyName)
|
||||
return prettyName;
|
||||
const label = item.id.replace(/([A-Z])/g, " $1");
|
||||
return label.charAt(0).toUpperCase() + label.slice(1).toLowerCase();
|
||||
}
|
||||
|
||||
function toggledFor(item: var): bool {
|
||||
return item.enabled;
|
||||
}
|
||||
|
||||
first: true
|
||||
values: Config.utilities.quickToggles.values
|
||||
z: 1
|
||||
|
||||
onItemMoved: (from, to) => Config.utilities.quickToggles.move(from, to)
|
||||
onItemRemoved: index => Config.utilities.quickToggles.remove(index)
|
||||
onItemToggled: (index, checked) => Config.utilities.quickToggles.at(index).enabled = checked
|
||||
}
|
||||
|
||||
DialogSelectButton {
|
||||
id: addItemContainer
|
||||
|
||||
acceptLabel: qsTr("Add")
|
||||
enabled: Object.keys(model).length > 0
|
||||
header: qsTr("Add new entry")
|
||||
icon: "add"
|
||||
label: qsTr("Add entry")
|
||||
model: {
|
||||
const present = new Set(Config.utilities.quickToggles.values.map(item => item.id));
|
||||
return Object.keys(root.builtinIcons).filter(id => !present.has(id)).map(id => ({
|
||||
id: id,
|
||||
label: root.builtinIcons[id]
|
||||
}));
|
||||
}
|
||||
rootParent: root.flickable
|
||||
|
||||
onAccepted: {
|
||||
if (!selectedItem)
|
||||
return;
|
||||
|
||||
Config.utilities.quickToggles.insert({
|
||||
id: selectedItem,
|
||||
enabled: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user