From 36e0ef91bca09a4aeb4fe1a8280abd3e1c17cbf3 Mon Sep 17 00:00:00 2001 From: Adam Laughlin Date: Sat, 15 Nov 2025 09:57:06 -0500 Subject: [PATCH] MediaMini: Support showing artist first --- Assets/Translations/en.json | 4 ++++ Modules/Bar/Widgets/MediaMini.qml | 7 ++++++- .../Settings/Bar/WidgetSettings/MediaMiniSettings.qml | 9 +++++++++ Services/UI/BarWidgetRegistry.qml | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 7d8322d4..ea398af3 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -202,6 +202,10 @@ "description": "Display the album artwork for the currently playing track.", "label": "Show album art" }, + "show-artist-first": { + "description": "Display artist - title instead of title - artist", + "label": "Show artist first" + } "show-visualizer": { "description": "Display an audio visualizer when music is playing.", "label": "Show visualizer" diff --git a/Modules/Bar/Widgets/MediaMini.qml b/Modules/Bar/Widgets/MediaMini.qml index 0867514d..1bf2c618 100644 --- a/Modules/Bar/Widgets/MediaMini.qml +++ b/Modules/Bar/Widgets/MediaMini.qml @@ -37,6 +37,7 @@ Item { // Backward compatibility: honor legacy hideWhenIdle setting if present readonly property bool hideWhenIdle: (widgetSettings.hideWhenIdle !== undefined) ? widgetSettings.hideWhenIdle : (widgetMetadata.hideWhenIdle !== undefined ? widgetMetadata.hideWhenIdle : false) readonly property bool showAlbumArt: (widgetSettings.showAlbumArt !== undefined) ? widgetSettings.showAlbumArt : widgetMetadata.showAlbumArt + readonly property bool showArtistFirst: (widgetSettings.showArtistFirst !== undefined) ? widgetSettings.showArtistFirst : widgetMetadata.showArtistFirst readonly property bool showVisualizer: (widgetSettings.showVisualizer !== undefined) ? widgetSettings.showVisualizer : widgetMetadata.showVisualizer readonly property string visualizerType: (widgetSettings.visualizerType !== undefined && widgetSettings.visualizerType !== "") ? widgetSettings.visualizerType : widgetMetadata.visualizerType readonly property string scrollingMode: (widgetSettings.scrollingMode !== undefined) ? widgetSettings.scrollingMode : widgetMetadata.scrollingMode @@ -94,7 +95,11 @@ Item { } function getTitle() { - return MediaService.trackTitle + (MediaService.trackArtist !== "" ? ` - ${MediaService.trackArtist}` : "") + if (showArtistFirst) { + return (MediaService.trackArtist !== "" ? `${MediaService.trackArtist} - ` : "") + MediaService.trackTitle + } else { + return MediaService.trackTitle + (MediaService.trackArtist !== "" ? ` - ${MediaService.trackArtist}` : "") + } } function calculatedVerticalDimension() { diff --git a/Modules/Panels/Settings/Bar/WidgetSettings/MediaMiniSettings.qml b/Modules/Panels/Settings/Bar/WidgetSettings/MediaMiniSettings.qml index 808fe3dc..239ae7e0 100644 --- a/Modules/Panels/Settings/Bar/WidgetSettings/MediaMiniSettings.qml +++ b/Modules/Panels/Settings/Bar/WidgetSettings/MediaMiniSettings.qml @@ -17,6 +17,7 @@ ColumnLayout { // Deprecated: hideWhenIdle now folded into hideMode = "idle" property bool valueHideWhenIdle: widgetData.hideWhenIdle !== undefined ? widgetData.hideWhenIdle : (widgetMetadata.hideWhenIdle !== undefined ? widgetMetadata.hideWhenIdle : false) 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 property string valueVisualizerType: widgetData.visualizerType || widgetMetadata.visualizerType property string valueScrollingMode: widgetData.scrollingMode || widgetMetadata.scrollingMode @@ -34,6 +35,7 @@ ColumnLayout { settings.hideMode = valueHideMode // No longer store hideWhenIdle separately; kept for backward compatibility only settings.showAlbumArt = valueShowAlbumArt + settings.showArtistFirst = valueShowArtistFirst settings.showVisualizer = valueShowVisualizer settings.visualizerType = valueVisualizerType settings.scrollingMode = valueScrollingMode @@ -70,6 +72,13 @@ ColumnLayout { onToggled: checked => valueShowAlbumArt = checked } + NToggle { + label: I18n.tr("bar.widget-settings.media-mini.show-artist-first.label") + description: I18n.tr("bar.widget-settings.media-mini.show-artist-first.description") + checked: valueShowArtistFirst + onToggled: checked => valueShowArtistFirst = checked + } + NToggle { label: I18n.tr("bar.widget-settings.media-mini.show-visualizer.label") description: I18n.tr("bar.widget-settings.media-mini.show-visualizer.description") diff --git a/Services/UI/BarWidgetRegistry.qml b/Services/UI/BarWidgetRegistry.qml index 1fa211ca..f233d4c4 100644 --- a/Services/UI/BarWidgetRegistry.qml +++ b/Services/UI/BarWidgetRegistry.qml @@ -147,6 +147,7 @@ Singleton { "useFixedWidth": false, "hideWhenIdle": false, "showAlbumArt": false, + "showArtistFirst": false, "showVisualizer": false, "visualizerType": "linear" },