Merge pull request #761 from alaughlin/media_manager_toggle_artist_first

MediaMini: Support showing artist first
This commit is contained in:
Lemmy
2025-11-16 20:56:20 -05:00
committed by GitHub
4 changed files with 27 additions and 8 deletions
+4
View File
@@ -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"
+6 -1
View File
@@ -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() {
@@ -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
@@ -33,13 +34,14 @@ ColumnLayout {
var settings = Object.assign({}, widgetData || {});
settings.hideMode = valueHideMode;
// No longer store hideWhenIdle separately; kept for backward compatibility only
settings.showAlbumArt = valueShowAlbumArt;
settings.showVisualizer = valueShowVisualizer;
settings.visualizerType = valueVisualizerType;
settings.scrollingMode = valueScrollingMode;
settings.maxWidth = parseInt(widthInput.text) || widgetMetadata.maxWidth;
settings.useFixedWidth = valueUseFixedWidth;
return settings;
settings.showAlbumArt = valueShowAlbumArt
settings.showArtistFirst = valueShowArtistFirst
settings.showVisualizer = valueShowVisualizer
settings.visualizerType = valueVisualizerType
settings.scrollingMode = valueScrollingMode
settings.maxWidth = parseInt(widthInput.text) || widgetMetadata.maxWidth
settings.useFixedWidth = valueUseFixedWidth
return settings
}
NComboBox {
@@ -75,6 +77,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")
+1
View File
@@ -147,6 +147,7 @@ Singleton {
"useFixedWidth": false,
"hideWhenIdle": false,
"showAlbumArt": false,
"showArtistFirst": false,
"showVisualizer": false,
"visualizerType": "linear"
},