mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
WidgetSettings: no fallback for widgetMetadata
TrayDrawerPanel: cleanup
This commit is contained in:
@@ -21,7 +21,7 @@ Rectangle {
|
||||
// Get shared popup menu window from PanelService (reactive to trigger changes)
|
||||
readonly property var popupMenuWindow: {
|
||||
// Reference trigger to force re-evaluation
|
||||
var _ = popupMenuUpdateTrigger;
|
||||
var popupMenuUpdateTriggerRef = popupMenuUpdateTrigger;
|
||||
return PanelService.getPopupMenuWindow(screen);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ ColumnLayout {
|
||||
property bool valueUseDistroLogo: widgetData.useDistroLogo !== undefined ? widgetData.useDistroLogo : widgetMetadata.useDistroLogo
|
||||
property string valueCustomIconPath: widgetData.customIconPath !== undefined ? widgetData.customIconPath : ""
|
||||
property bool valueEnableColorization: widgetData.enableColorization || false
|
||||
property string valueColorizeSystemIcon: widgetData.colorizeSystemIcon !== undefined ? widgetData.colorizeSystemIcon : (widgetMetadata.colorizeSystemIcon !== undefined ? widgetMetadata.colorizeSystemIcon : "none")
|
||||
property string valueColorizeSystemIcon: widgetData.colorizeSystemIcon !== undefined ? widgetData.colorizeSystemIcon : widgetMetadata.colorizeSystemIcon
|
||||
|
||||
function saveSettings() {
|
||||
var settings = Object.assign({}, widgetData || {});
|
||||
|
||||
@@ -179,7 +179,7 @@ ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("bar.widget-settings.custom-button.wheel-mode-separate.label", "Separate wheel commands")
|
||||
description: I18n.tr("bar.widget-settings.custom-button.wheel-mode-separate.description", "Enable separate commands for wheel up and down")
|
||||
property bool internalChecked: (widgetData?.wheelMode || widgetMetadata?.wheelMode || "unified") === "separate"
|
||||
property bool internalChecked: (widgetData?.wheelMode || widgetMetadata?.wheelMode) === "separate"
|
||||
checked: internalChecked
|
||||
onToggled: checked => {
|
||||
internalChecked = checked;
|
||||
@@ -201,7 +201,7 @@ ColumnLayout {
|
||||
label: I18n.tr("bar.widget-settings.custom-button.wheel.label")
|
||||
description: I18n.tr("bar.widget-settings.custom-button.wheel.description")
|
||||
placeholderText: I18n.tr("placeholders.enter-command")
|
||||
text: widgetData?.wheelExec || widgetMetadata?.wheelExec || ""
|
||||
text: widgetData?.wheelExec || widgetMetadata?.wheelExec
|
||||
}
|
||||
|
||||
NToggle {
|
||||
@@ -230,7 +230,7 @@ ColumnLayout {
|
||||
label: I18n.tr("bar.widget-settings.custom-button.wheel-up.label")
|
||||
description: I18n.tr("bar.widget-settings.custom-button.wheel-up.description")
|
||||
placeholderText: I18n.tr("placeholders.enter-command")
|
||||
text: widgetData?.wheelUpExec || widgetMetadata?.wheelUpExec || ""
|
||||
text: widgetData?.wheelUpExec || widgetMetadata?.wheelUpExec
|
||||
}
|
||||
|
||||
NToggle {
|
||||
@@ -240,7 +240,7 @@ ColumnLayout {
|
||||
Layout.bottomMargin: Style.marginS
|
||||
onEntered: TooltipService.show(wheelUpUpdateText, I18n.tr("bar.widget-settings.custom-button.wheel.update-text"), "auto")
|
||||
onExited: TooltipService.hide()
|
||||
checked: (widgetData?.wheelUpUpdateText !== undefined) ? widgetData.wheelUpUpdateText : (widgetMetadata?.wheelUpUpdateText ?? false)
|
||||
checked: (widgetData?.wheelUpUpdateText !== undefined) ? widgetData.wheelUpUpdateText : widgetMetadata?.wheelUpUpdateText
|
||||
onToggled: isChecked => checked = isChecked
|
||||
}
|
||||
}
|
||||
@@ -254,7 +254,7 @@ ColumnLayout {
|
||||
label: I18n.tr("bar.widget-settings.custom-button.wheel-down.label")
|
||||
description: I18n.tr("bar.widget-settings.custom-button.wheel-down.description")
|
||||
placeholderText: I18n.tr("placeholders.enter-command")
|
||||
text: widgetData?.wheelDownExec || widgetMetadata?.wheelDownExec || ""
|
||||
text: widgetData?.wheelDownExec || widgetMetadata?.wheelDownExec
|
||||
}
|
||||
|
||||
NToggle {
|
||||
@@ -264,7 +264,7 @@ ColumnLayout {
|
||||
Layout.bottomMargin: Style.marginS
|
||||
onEntered: TooltipService.show(wheelDownUpdateText, I18n.tr("bar.widget-settings.custom-button.wheel.update-text"), "auto")
|
||||
onExited: TooltipService.hide()
|
||||
checked: (widgetData?.wheelDownUpdateText !== undefined) ? widgetData.wheelDownUpdateText : (widgetMetadata?.wheelDownUpdateText ?? false)
|
||||
checked: (widgetData?.wheelDownUpdateText !== undefined) ? widgetData.wheelDownUpdateText : widgetMetadata?.wheelDownUpdateText
|
||||
onToggled: isChecked => checked = isChecked
|
||||
}
|
||||
}
|
||||
@@ -338,7 +338,7 @@ ColumnLayout {
|
||||
visible: !valueTextStream
|
||||
label: I18n.tr("bar.widget-settings.custom-button.refresh-interval.label")
|
||||
description: I18n.tr("bar.widget-settings.custom-button.refresh-interval.description")
|
||||
placeholderText: String(widgetMetadata.textIntervalMs || 3000)
|
||||
placeholderText: String(widgetMetadata.textIntervalMs)
|
||||
text: widgetData && widgetData.textIntervalMs !== undefined ? String(widgetData.textIntervalMs) : ""
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ ColumnLayout {
|
||||
// Local state
|
||||
property string valueHideMode: "hidden" // Default to 'Hide When Empty'
|
||||
// Deprecated: hideWhenIdle now folded into hideMode = "idle"
|
||||
property bool valueHideWhenIdle: widgetData.hideWhenIdle !== undefined ? widgetData.hideWhenIdle : (widgetMetadata.hideWhenIdle !== undefined ? widgetMetadata.hideWhenIdle : false)
|
||||
property bool valueHideWhenIdle: widgetData.hideWhenIdle !== undefined ? widgetData.hideWhenIdle : widgetMetadata.hideWhenIdle
|
||||
property bool valueShowAlbumArt: widgetData.showAlbumArt !== undefined ? widgetData.showAlbumArt : widgetMetadata.showAlbumArt
|
||||
property bool valueShowArtistFirst: widgetData.showArtistFirst !== undefined ? widgetData.showArtistFirst : widgetMetadata.showArtistFirst
|
||||
property bool valueShowVisualizer: widgetData.showVisualizer !== undefined ? widgetData.showVisualizer : widgetMetadata.showVisualizer
|
||||
|
||||
@@ -13,8 +13,8 @@ ColumnLayout {
|
||||
// Local state
|
||||
property var localBlacklist: widgetData.blacklist || []
|
||||
property bool valueColorizeIcons: widgetData.colorizeIcons !== undefined ? widgetData.colorizeIcons : widgetMetadata.colorizeIcons
|
||||
property bool valueDrawerEnabled: widgetData.drawerEnabled !== undefined ? widgetData.drawerEnabled : (widgetMetadata.drawerEnabled !== undefined ? widgetMetadata.drawerEnabled : true)
|
||||
property bool valueHidePassive: widgetData.hidePassive !== undefined ? widgetData.hidePassive : (widgetMetadata.hidePassive !== undefined ? widgetMetadata.hidePassive : true)
|
||||
property bool valueDrawerEnabled: widgetData.drawerEnabled !== undefined ? widgetData.drawerEnabled : widgetMetadata.drawerEnabled
|
||||
property bool valueHidePassive: widgetData.hidePassive !== undefined ? widgetData.hidePassive : widgetMetadata.hidePassive
|
||||
|
||||
ListModel {
|
||||
id: blacklistModel
|
||||
|
||||
@@ -23,7 +23,7 @@ ColumnLayout {
|
||||
property bool enableOnStateLogic: (widgetData && widgetData.enableOnStateLogic !== undefined) ? widgetData.enableOnStateLogic : widgetMetadata.enableOnStateLogic
|
||||
|
||||
Component.onCompleted: {
|
||||
stateChecksJson = (widgetData && widgetData.stateChecksJson !== undefined) ? widgetData.stateChecksJson : widgetMetadata.stateChecksJson || "[]";
|
||||
stateChecksJson = (widgetData && widgetData.stateChecksJson !== undefined) ? widgetData.stateChecksJson : widgetMetadata.stateChecksJson;
|
||||
try {
|
||||
var initialChecks = JSON.parse(stateChecksJson);
|
||||
if (initialChecks && Array.isArray(initialChecks)) {
|
||||
|
||||
@@ -25,7 +25,7 @@ SmartPanel {
|
||||
// Read widget settings for reactivity
|
||||
readonly property var widgetSettings: {
|
||||
// Reference settingsVersion to force recalculation when it changes
|
||||
var _ = root.settingsVersion;
|
||||
var settingsVersionRef = root.settingsVersion;
|
||||
if (widgetSection === "" || widgetIndex < 0)
|
||||
return {};
|
||||
var widgets = Settings.data.bar.widgets[widgetSection];
|
||||
@@ -75,16 +75,15 @@ SmartPanel {
|
||||
readonly property var trayValuesAll: (SystemTray.items && SystemTray.items.values) ? SystemTray.items.values : []
|
||||
// Explicitly reference hidePassive to ensure reactivity
|
||||
readonly property var trayValues: {
|
||||
var _ = root.hidePassive; // Force dependency tracking
|
||||
// Reference hidePassive to ensure dependency tracking
|
||||
var hidePassiveRef = root.hidePassive;
|
||||
return trayValuesAll.filter(function (it) {
|
||||
if (!it)
|
||||
return false;
|
||||
// Filter out passive items if hidePassive is enabled
|
||||
// Check if status exists and is Passive (using both enum and numeric comparison for safety)
|
||||
if (root.hidePassive && it.status !== undefined && (it.status === SystemTray.Passive || it.status === 0)) {
|
||||
return false;
|
||||
}
|
||||
// Filter out pinned items (they show in the bar)
|
||||
return !root.isPinned(it);
|
||||
});
|
||||
}
|
||||
@@ -124,7 +123,7 @@ SmartPanel {
|
||||
// Get the trayMenu window and loader from PanelService (reactive to trigger changes)
|
||||
readonly property var popupMenuWindow: {
|
||||
// Reference trigger to force re-evaluation
|
||||
var _ = popupMenuUpdateTrigger;
|
||||
var popupMenuUpdateTriggerRef = popupMenuUpdateTrigger;
|
||||
return PanelService.getPopupMenuWindow(screen);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user