feat(bar): add context menu for CustomButton right-click

- Show context menu instead of directly opening settings when no command is set
- Context menu includes widget-settings option
- Matches behavior of other bar widgets
This commit is contained in:
loner
2026-04-06 09:14:00 +08:00
parent b8a7c2f77d
commit cfc96dd3e7
4 changed files with 55 additions and 32 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ SmartPanel {
id: playerContent
anchors.fill: parent
property real contentPreferredHeight: mainLayout.implicitHeight + Style.margin2L;
property real contentPreferredHeight: mainLayout.implicitHeight + Style.margin2L
property Component visualizerSource: {
switch (root.visualizerType) {
@@ -122,29 +122,29 @@ ColumnLayout {
label: I18n.tr("bar.custom-button.icon-position-label")
description: I18n.tr("bar.custom-button.icon-position-description")
model: barIsVertical ? [
{
name: I18n.tr("bar.custom-button.icon-position-top"),
key: "left"
},
{
name: I18n.tr("bar.custom-button.icon-position-bottom"),
key: "right"
}
] : [
{
name: I18n.tr("bar.custom-button.icon-position-left"),
key: "left"
},
{
name: I18n.tr("bar.custom-button.icon-position-right"),
key: "right"
}
]
{
name: I18n.tr("bar.custom-button.icon-position-top"),
key: "left"
},
{
name: I18n.tr("bar.custom-button.icon-position-bottom"),
key: "right"
}
] : [
{
name: I18n.tr("bar.custom-button.icon-position-left"),
key: "left"
},
{
name: I18n.tr("bar.custom-button.icon-position-right"),
key: "right"
}
]
currentKey: valueIconPosition
onSelected: key => {
valueIconPosition = key;
saveSettings();
}
valueIconPosition = key;
saveSettings();
}
defaultValue: widgetMetadata.iconPosition
}