From 2f2bcdebc88add2d1db61d332b7ae3b51204be73 Mon Sep 17 00:00:00 2001 From: loner <2788892716@qq.com> Date: Fri, 10 Oct 2025 03:34:09 +0800 Subject: [PATCH] feat: Add custom settings and blacklist for Tray module --- Modules/Bar/Widgets/Tray.qml | 19 ++++++++++++++++++- .../Settings/Bar/BarWidgetSettingsDialog.qml | 7 +------ Services/BarWidgetRegistry.qml | 3 ++- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Modules/Bar/Widgets/Tray.qml b/Modules/Bar/Widgets/Tray.qml index acc11dc7..03750fe1 100644 --- a/Modules/Bar/Widgets/Tray.qml +++ b/Modules/Bar/Widgets/Tray.qml @@ -16,11 +16,28 @@ Rectangle { property ShellScreen screen property real scaling: 1.0 + // Widget properties passed from Bar.qml for per-instance settings + property string widgetId: "" + property string section: "" + property int sectionWidgetIndex: -1 + property int sectionWidgetsCount: 0 + + property var widgetMetadata: BarWidgetRegistry.widgetMetadata[widgetId] + property var widgetSettings: { + if (section && sectionWidgetIndex >= 0) { + var widgets = Settings.data.bar.widgets[section] + if (widgets && sectionWidgetIndex < widgets.length) { + return widgets[sectionWidgetIndex] + } + } + return {} + } + readonly property string barPosition: Settings.data.bar.position readonly property bool isVertical: barPosition === "left" || barPosition === "right" readonly property bool compact: (Settings.data.bar.density === "compact") property real itemSize: Math.round(Style.capsuleHeight * 0.65 * scaling) - property list blacklist: Settings.data.bar.trayBlacklist || [] // Read from settings + property list blacklist: widgetSettings.blacklist || Settings.data.bar.trayBlacklist || [] // Read from settings property var filteredItems: [] function wildCardMatch(str, rule) { diff --git a/Modules/Settings/Bar/BarWidgetSettingsDialog.qml b/Modules/Settings/Bar/BarWidgetSettingsDialog.qml index 06729c66..4d31f7d0 100644 --- a/Modules/Settings/Bar/BarWidgetSettingsDialog.qml +++ b/Modules/Settings/Bar/BarWidgetSettingsDialog.qml @@ -110,12 +110,7 @@ Popup { onClicked: { if (settingsLoader.item && settingsLoader.item.saveSettings) { var newSettings = settingsLoader.item.saveSettings() - if (widgetSettings.widgetId === "Tray") { - Settings.data.bar.trayBlacklist = newSettings.blacklist || [] - Settings.saveImmediate() - } else { - root.updateWidgetSettings(sectionId, widgetSettings.widgetIndex, newSettings) - } + root.updateWidgetSettings(sectionId, widgetSettings.widgetIndex, newSettings) widgetSettings.close() } } diff --git a/Services/BarWidgetRegistry.qml b/Services/BarWidgetRegistry.qml index 799a5ce0..efb85537 100644 --- a/Services/BarWidgetRegistry.qml +++ b/Services/BarWidgetRegistry.qml @@ -117,7 +117,8 @@ Singleton { "onlyActiveWorkspaces": true }, "Tray": { - "allowUserSettings": true + "allowUserSettings": true, + "blacklist": [] }, "Workspace": { "allowUserSettings": true,