From 71eee01e4c32603cbf199a3324b90d6bbee05196 Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Sun, 13 Sep 2026 09:20:21 -0600 Subject: [PATCH] feat(qt): featured artists on track rows are on by default The preference stays (opt-out); an absent key reads as on so rows never flash without the names before the first settings snapshot. cc --- crates/qbz-i18n/translations/de/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/en/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/es/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/fr/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/ja/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/nl/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/pt/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-i18n/translations/ru/LC_MESSAGES/qbz-ui.po | 8 ++++---- crates/qbz-qt/qml/rows/TrackRow.qml | 10 ++++++---- crates/qbz-qt/qml/settings/AppearanceSettings.qml | 2 +- crates/qbz-qt/src/settings_qt.rs | 2 +- 11 files changed, 40 insertions(+), 38 deletions(-) diff --git a/crates/qbz-i18n/translations/de/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/de/LC_MESSAGES/qbz-ui.po index e58e47ea7..934874029 100644 --- a/crates/qbz-i18n/translations/de/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/de/LC_MESSAGES/qbz-ui.po @@ -7520,10 +7520,6 @@ msgstr "Schleifenende setzen (B)" msgid "Clear loop" msgstr "Schleife aufheben" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Führt die Gastinterpreten des Titels nach dem Hauptkünstler in den Qobuz-Titelzeilen auf, durch Kommas getrennt. Standardmäßig aus." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "COVER-CACHE" @@ -7555,3 +7551,7 @@ msgstr "Speicher" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "PLEX-CACHE" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Führt die Gastinterpreten des Titels nach dem Hauptkünstler in den Qobuz-Titelzeilen auf, durch Kommas getrennt. Jeder Name ist ein Link. Standardmäßig an." diff --git a/crates/qbz-i18n/translations/en/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/en/LC_MESSAGES/qbz-ui.po index 2ed681047..046613e52 100644 --- a/crates/qbz-i18n/translations/en/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/en/LC_MESSAGES/qbz-ui.po @@ -3146,10 +3146,6 @@ msgstr "Set loop end (B)" msgid "Clear loop" msgstr "Clear loop" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "ARTWORK CACHE" @@ -3181,3 +3177,7 @@ msgstr "Storage" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "PLEX CACHE" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." diff --git a/crates/qbz-i18n/translations/es/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/es/LC_MESSAGES/qbz-ui.po index 3e101cfc1..0b98347bc 100644 --- a/crates/qbz-i18n/translations/es/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/es/LC_MESSAGES/qbz-ui.po @@ -7526,10 +7526,6 @@ msgstr "Fijar fin del bucle (B)" msgid "Clear loop" msgstr "Quitar bucle" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Muestra los intérpretes invitados de la pista después del artista principal en las filas de pistas de Qobuz, separados por comas. Desactivado por defecto." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "CACHÉ DE PORTADAS" @@ -7561,3 +7557,7 @@ msgstr "Almacenamiento" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "CACHÉ DE PLEX" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Muestra los intérpretes invitados de la pista después del artista principal en las filas de pistas de Qobuz, separados por comas. Cada nombre es un enlace. Activado por defecto." diff --git a/crates/qbz-i18n/translations/fr/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/fr/LC_MESSAGES/qbz-ui.po index 6c273456c..d19a8c086 100644 --- a/crates/qbz-i18n/translations/fr/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/fr/LC_MESSAGES/qbz-ui.po @@ -7518,10 +7518,6 @@ msgstr "Définir la fin de la boucle (B)" msgid "Clear loop" msgstr "Supprimer la boucle" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Liste les interprètes invités du morceau après l'artiste principal sur les lignes de piste Qobuz, séparés par des virgules. Désactivé par défaut." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "CACHE DES POCHETTES" @@ -7553,3 +7549,7 @@ msgstr "Stockage" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "CACHE PLEX" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Liste les interprètes invités du morceau après l'artiste principal sur les lignes de piste Qobuz, séparés par des virgules. Chaque nom est un lien. Activé par défaut." diff --git a/crates/qbz-i18n/translations/ja/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/ja/LC_MESSAGES/qbz-ui.po index d662e8b96..5a196f4d7 100644 --- a/crates/qbz-i18n/translations/ja/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/ja/LC_MESSAGES/qbz-ui.po @@ -7501,10 +7501,6 @@ msgstr "ループの終了点を設定 (B)" msgid "Clear loop" msgstr "ループを解除" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Qobuz のトラック行で、メインアーティストの後にフィーチャリングされた演奏者をカンマ区切りで表示します。既定ではオフです。" - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "アートワークキャッシュ" @@ -7536,3 +7532,7 @@ msgstr "ストレージ" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "PLEX キャッシュ" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Qobuz のトラック行で、メインアーティストの後にフィーチャリングされた演奏者をカンマ区切りで表示します。各名前はリンクです。既定ではオンです。" diff --git a/crates/qbz-i18n/translations/nl/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/nl/LC_MESSAGES/qbz-ui.po index 101d77725..dfc08cf91 100644 --- a/crates/qbz-i18n/translations/nl/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/nl/LC_MESSAGES/qbz-ui.po @@ -7508,10 +7508,6 @@ msgstr "Loopeinde instellen (B)" msgid "Clear loop" msgstr "Loop wissen" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Toont de gastartiesten van de track na de hoofdartiest in Qobuz-trackregels, gescheiden door komma's. Standaard uit." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "ARTWORKCACHE" @@ -7543,3 +7539,7 @@ msgstr "Opslag" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "PLEX-CACHE" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Toont de gastartiesten van de track na de hoofdartiest in Qobuz-trackregels, gescheiden door komma's. Elke naam is een link. Standaard aan." diff --git a/crates/qbz-i18n/translations/pt/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/pt/LC_MESSAGES/qbz-ui.po index e17545e47..74cc508af 100644 --- a/crates/qbz-i18n/translations/pt/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/pt/LC_MESSAGES/qbz-ui.po @@ -7518,10 +7518,6 @@ msgstr "Definir fim do loop (B)" msgid "Clear loop" msgstr "Remover loop" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Lista os intérpretes convidados da faixa após o artista principal nas linhas de faixa do Qobuz, separados por vírgulas. Desligado por padrão." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "CACHE DE CAPAS" @@ -7553,3 +7549,7 @@ msgstr "Armazenamento" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "CACHE DO PLEX" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Lista os intérpretes convidados da faixa após o artista principal nas linhas de faixa do Qobuz, separados por vírgulas. Cada nome é um link. Ligado por padrão." diff --git a/crates/qbz-i18n/translations/ru/LC_MESSAGES/qbz-ui.po b/crates/qbz-i18n/translations/ru/LC_MESSAGES/qbz-ui.po index 9131d08dc..ea201774f 100644 --- a/crates/qbz-i18n/translations/ru/LC_MESSAGES/qbz-ui.po +++ b/crates/qbz-i18n/translations/ru/LC_MESSAGES/qbz-ui.po @@ -7539,10 +7539,6 @@ msgstr "Задать конец петли (B)" msgid "Clear loop" msgstr "Убрать петлю" -#: qbz-qt/qml/settings/AppearanceSettings.qml -msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default." -msgstr "Перечисляет приглашённых исполнителей трека после основного артиста в строках треков Qobuz, через запятую. По умолчанию выключено." - #: qbz-qt/qml/settings/OfflineSettings.qml msgid "ARTWORK CACHE" msgstr "КЭШ ОБЛОЖЕК" @@ -7574,3 +7570,7 @@ msgstr "Хранилище" #: qbz-qt/qml/settings/StorageSettings.qml msgid "PLEX CACHE" msgstr "КЭШ PLEX" + +#: qbz-qt/qml/settings/AppearanceSettings.qml +msgid "List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default." +msgstr "Перечисляет приглашённых исполнителей трека после основного артиста в строках треков Qobuz, через запятую. Каждое имя — ссылка. По умолчанию включено." diff --git a/crates/qbz-qt/qml/rows/TrackRow.qml b/crates/qbz-qt/qml/rows/TrackRow.qml index 85c1fed5d..48fc9357a 100644 --- a/crates/qbz-qt/qml/rows/TrackRow.qml +++ b/crates/qbz-qt/qml/rows/TrackRow.qml @@ -507,17 +507,19 @@ Rectangle { } return false } - // "Show featured artists in track rows" (AppearanceSettings). Same read - // as playIndicatorAnim: the settings document republishes on every + // "Show featured artists in track rows" (AppearanceSettings), ON by + // default: only an explicit false turns it off, so the rows never flash + // without names before the first settings snapshot lands. Same read as + // playIndicatorAnim otherwise: the settings document republishes on every // settings write, which is the only time this re-evaluates. readonly property bool showFeaturedArtists: { var raw = QbzBridge.settingsJson if (raw && raw.length > 2) { try { - return JSON.parse(raw).showFeaturedArtists === true + return JSON.parse(raw).showFeaturedArtists !== false } catch (e) { /* fall through */ } } - return false + return true } // The animated eq bars carry the playing state in the play cell when the // pref is ON (TrackPlayCell.slint:99-100 `show-bars`): only while this diff --git a/crates/qbz-qt/qml/settings/AppearanceSettings.qml b/crates/qbz-qt/qml/settings/AppearanceSettings.qml index 73ede2c95..dd21a2f6b 100644 --- a/crates/qbz-qt/qml/settings/AppearanceSettings.qml +++ b/crates/qbz-qt/qml/settings/AppearanceSettings.qml @@ -336,7 +336,7 @@ Column { } SettingRow { kioskHost: root.kioskHost; label: QbzSession.tr("Show featured artists in track rows", QbzSession.trRev) - description: QbzSession.tr("List the track's featured performers after the main artist on Qobuz track rows, comma separated. Off by default.", QbzSession.trRev) + description: QbzSession.tr("List the track's featured performers after the main artist on Qobuz track rows, comma separated. Each name is a link. On by default.", QbzSession.trRev) QbzToggle { kioskHost: root.kioskHost; checked: root.doc.showFeaturedArtists === true onToggled: function (v) { QbzBridge.settingsBool("show-featured-artists", v) } diff --git a/crates/qbz-qt/src/settings_qt.rs b/crates/qbz-qt/src/settings_qt.rs index 46c1c2d24..eae98ec73 100644 --- a/crates/qbz-qt/src/settings_qt.rs +++ b/crates/qbz-qt/src/settings_qt.rs @@ -2743,7 +2743,7 @@ pub async fn publish_snapshot() { library_track_artwork: pref_bool("library_track_artwork", false), local_library_track_artwork: pref_bool("local_library_track_artwork", false), play_indicator_animation: pref_bool("play_indicator_animation", false), - show_featured_artists: pref_bool("show_featured_artists", false), + show_featured_artists: pref_bool("show_featured_artists", true), seekbar_waveform: seekbar_waveform(), invert_swipe_navigation: pref_bool("invert_swipe_navigation", false), in_app_toasts: pref_bool("in_app_toasts", true),