feat(qt): album page parity — cover menu + lightbox, header actions, album info modal

Four wired surfaces on AlbumView, all previously inert stubs:

- Cover menu (right-click, AlbumPageView.slint:300-370): Add/Change/Remove
  custom cover over the SAME custom_artwork.json store the Slint app uses
  (a cover set in one app shows in both), Open in browser, Save as…. Plus
  the NEW lightbox (menu entry + left-click): the art at its best available
  quality fitted to the window, custom override preferred.
- Header action row: radio (the existing foryou_qt album-radio seam),
  booklet (visible when a PDF goody exists; downloads via save-as — no
  in-app reader, like the reference), and add-to-mixtape/collection — the
  MyQBZ picker's Accepts engine already lets albums target Collections
  (the Tauri rule), so the button just feeds it.
- Album Info modal (the extensive one): fresh /album/get → credits grouped
  through the shared qbz_qobuz::performers parser, per-track copyright,
  review tab when the album has editorial text, label link, musician
  navigation, per-track play in album context. Tauri layout (left fixed
  meta column, right scrollable tabs) per the project ruling for this
  feature; the header's label link is wired along the way (LabelView has
  existed for a while — the POC-NOTE was stale).
- … menu: Add to playlist (the loaded view's track ids into the picker),
  Add to mixtape, Share Qobuz link, Share Album.link (UPC -> Deezer ->
  album.link, #514 path — the resolver half of share.rs is now ported for
  the album arm). The offline rows stay out: no Qt album-cache seam.

i18n: "View cover" + "Could not load the image" catalogued in all seven
locales. Gate: both QML audits + 305 tests + debug/release builds green.

km
This commit is contained in:
vicrodh committed 2026-08-10 20:24:25 -06:00
1 parent 2ca7b672e0
commit d9b1c26ff3
18 files changed
+1668 -30

No files matched your search

@@ -5088,3 +5088,11 @@ msgstr "Kioskmodus"
msgid "Desktop mode"
msgstr "Desktopmodus"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Cover ansehen"
msgid "Could not load the image"
msgstr "Das Bild konnte nicht geladen werden"
@@ -5096,3 +5096,11 @@ msgstr "Modo kiosco"
msgid "Desktop mode"
msgstr "Modo escritorio"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Ver carátula"
msgid "Could not load the image"
msgstr "No se pudo cargar la imagen"
@@ -5088,3 +5088,11 @@ msgstr "Mode kiosque"
msgid "Desktop mode"
msgstr "Mode bureau"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Voir la pochette"
msgid "Could not load the image"
msgstr "Impossible de charger l'image"
@@ -5073,3 +5073,11 @@ msgstr "キオスクモード"
msgid "Desktop mode"
msgstr "デスクトップモード"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "カバーを表示"
msgid "Could not load the image"
msgstr "画像を読み込めませんでした"
@@ -5078,3 +5078,11 @@ msgstr "Kioskmodus"
msgid "Desktop mode"
msgstr "Bureaubladmodus"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Hoes bekijken"
msgid "Could not load the image"
msgstr "De afbeelding kon niet worden geladen"
@@ -5088,3 +5088,11 @@ msgstr "Modo quiosque"
msgid "Desktop mode"
msgstr "Modo desktop"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Ver capa"
msgid "Could not load the image"
msgstr "Não foi possível carregar a imagem"
@@ -5105,3 +5105,11 @@ msgstr "Режим киоска"
msgid "Desktop mode"
msgstr "Режим рабочего стола"
# AlbumView cover menu / lightbox (Qt port, 2026-08-10)
msgid "View cover"
msgstr "Показать обложку"
msgid "Could not load the image"
msgstr "Не удалось загрузить изображение"