Merge branch 'main' into module/wifi
C++ / fmt (pull_request) Successful in 5s
JS/TS / fmt (pull_request) Successful in 17s
JS/TS / lint (pull_request) Successful in 16s
Python / fmt (pull_request) Successful in 31s
Python / lint (pull_request) Successful in 41s
Python / test (pull_request) Successful in 1m5s
Python / typecheck (pull_request) Successful in 1m15s
Rust / clippy (pull_request) Failing after 12m43s
Rust / fmt (pull_request) Failing after 12m57s
Rust / build (pull_request) Failing after 13m33s
Python / buildcheck (pull_request) Failing after 13m45s
C++ / clang-tidy (pull_request) Failing after 14m23s
C++ / build (pull_request) Failing after 14m25s

This commit is contained in:
2026-08-15 20:38:54 +02:00
377 changed files with 7398 additions and 8423 deletions
@@ -1,7 +1,7 @@
pragma ComponentBehavior: Bound
import QtQuick.Layouts
import qs.Config
import ZShell.Config
import qs.Components
import qs.Modules.Settings.Common
@@ -41,11 +41,11 @@ PageBase {
ColumnLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
spacing: Appearance.spacing.extraSmall / 2
spacing: Tokens.spacing.extraSmall / 2
width: root.cappedWidth
SelectRow {
Layout.topMargin: Appearance.spacing.extraSmall / 2 - parent.spacing
Layout.topMargin: Tokens.spacing.extraSmall / 2 - parent.spacing
active: root.clockFormats.find(item => item.value === Config.general.dateFormat)
first: true
menuItems: root.clockFormats
@@ -1,19 +1,25 @@
pragma ComponentBehavior: Bound
import QtQuick.Layouts
import qs.Config
import ZShell.Config
import qs.Modules.Settings.Common
PageBase {
id: root
readonly property var builtinIcons: ({
audio: qsTr("Speakers"),
microphone: qsTr("Microphone"),
power: qsTr("Battery"),
network: qsTr("Network"),
bluetooth: qsTr("Bluetooth")
})
isSubPage: true
title: qsTr("System icons")
ColumnLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
spacing: Appearance.spacing.extraSmall / 2
spacing: Tokens.spacing.extraSmall / 2
width: root.cappedWidth
// Visible icons
@@ -22,78 +28,70 @@ PageBase {
text: qsTr("Visible icons")
}
ToggleRow {
checked: Config.bar.tray.showAudio
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
settingAnchor: "bar-status-speakers"
text: qsTr("Speakers")
values: Config.bar.tray.statusIcons.values
z: 1
onToggled: Config.bar.tray.showAudio = checked
onItemMoved: (from, to) => Config.bar.tray.statusIcons.move(from, to)
onItemRemoved: index => Config.bar.tray.statusIcons.remove(index)
onItemToggled: (index, checked) => Config.bar.tray.statusIcons.at(index).enabled = checked
}
ToggleRow {
checked: Config.bar.tray.showMicrophone
settingAnchor: "bar-status-mic"
text: qsTr("Microphone")
DialogSelectButton {
id: addItemContainer
onToggled: Config.bar.tray.showMicrophone = checked
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.bar.tray.statusIcons.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.bar.tray.statusIcons.insert({
id: selectedItem,
enabled: true
});
}
}
ToggleRow {
checked: Config.bar.tray.showNetwork
text: qsTr("Network")
onToggled: Config.bar.tray.showNetwork = checked
}
//////// FOR LATER:
//
// ToggleRow {
// checked: Config.bar.tray.showWifi
// text: qsTr("Wi-Fi")
//
// onToggled: Config.bar.tray.showWifi = checked
// }
//
// ToggleRow {
// checked: Config.bar.tray.showBluetooth
// text: qsTr("Bluetooth")
//
// onToggled: Config.bar.tray.showBluetooth = checked
// }
ToggleRow {
checked: Config.bar.tray.showPower
last: true
settingAnchor: "bar-status-power"
text: qsTr("Battery")
onToggled: Config.bar.tray.showPower = checked
}
// Behaviour
// Behavior
SectionHeader {
text: qsTr("Behavior")
}
ToggleRow {
checked: Config.bar.popouts.audio
checked: Config.bar.popouts.statusIcons
first: true
settingAnchor: "bar-status-audio-popout"
subtext: qsTr("Show a details popout when hovering the audio icons")
text: qsTr("Audio popout on hover")
onToggled: Config.bar.popouts.audio = checked
}
ToggleRow {
checked: Config.bar.popouts.upower
last: true
settingAnchor: "bar-status-power-popout"
subtext: qsTr("Show a details popout when hovering the power icon")
text: qsTr("Power popout on hover")
settingAnchor: "bar-status-popout-on-hover"
subtext: qsTr("Show a details popout when hovering the status icons")
text: qsTr("Popout on hover")
onToggled: Config.bar.popouts.upower = checked
onToggled: Config.bar.popouts.statusIcons = checked
}
ToggleRow {
+12 -2
View File
@@ -1,7 +1,7 @@
pragma ComponentBehavior: Bound
import QtQuick.Layouts
import qs.Config
import ZShell.Config
import qs.Modules.Settings.Common
PageBase {
@@ -13,7 +13,7 @@ PageBase {
ColumnLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
spacing: Appearance.spacing.extraSmall / 2
spacing: Tokens.spacing.extraSmall / 2
width: root.cappedWidth
SpinRow {
@@ -28,8 +28,18 @@ PageBase {
onMoved: value => Config.bar.tray.trayIconSize = value
}
ToggleRow {
checked: Config.bar.popouts.tray
settingAnchor: "bar-tray-enable-tray-popouts"
subtext: Config.bar.popouts.tray ? qsTr("Enabled") : qsTr("Disabled")
text: qsTr("Enable tray menu popouts")
onToggled: Config.bar.popouts.tray = checked
}
ToggleRow {
checked: Config.bar.tray.showOnHover
enabled: Config.bar.popouts.tray
settingAnchor: "bar-tray-show-popout-on-hover"
subtext: Config.bar.tray.showOnHover ? qsTr("Will show context menu on hover") : qsTr("Will show context menu on right-click")
text: qsTr("Show popout on hover")