feat(slint): local album homologation, Recently Played fixes, local artist nav
Album view (local/Plex): - Rebuild LocalAlbumView as a near copy of the Qobuz AlbumPageView (whole-page scroll, 224px cover, action row, toolbar with quality badge + track search, column header, source-aware rows) minus the label/awards sidebar and Qobuz context menus. Add a per-album client-side track search. Recently Played (Home) — D: - Carry the track source (qobuz|plex|local) through the recently-played store so the cards resolve source-aware artwork (PlexThumb / local file), the album-card play routes to local/Plex playback instead of the empty Qobuz path, and the card click opens the right album view. - Fix a regression from the Plex version split: local_queue_track now derives the content-hash plex_album_key for album_id (navigation) while album_group_key keeps the per-edition split key, so "go to album" and recent Plex albums open correctly. Local artist navigation — B: - Implement open_artist (was a TODO): latch the requested artist and select it once the Artists tab loads. The shared open-artist is now source-aware (numeric id -> Qobuz artist; name -> LocalLibrary Artists tab). Wire the LocalAlbum header artist link and the now-playing "Go to artist" for Plex/local. Folder delete -> Recently Played cascade: - Removing a Local Library folder now also prunes its albums/tracks from the recently-played store (album_keys_in_folder + recently::prune_albums). Covers — C: - Robust on-disk folder cover lookup (cover/folder/front/art/<album>.jpg, any image as a last resort), shared by the Folders subcards and now-playing/album rows. cc
This commit is contained in:
12 files changed
+645
-162
No files matched your search
@@ -175,7 +175,11 @@ export component AppShell inherits Rectangle {
|
||||
}
|
||||
}
|
||||
// Dedicated Local Library album detail (separate from AlbumView).
|
||||
if NavState.view == ContentView.local-album: LocalAlbumView { }
|
||||
if NavState.view == ContentView.local-album: LocalAlbumView {
|
||||
open-artist(name) => {
|
||||
root.open-artist(name);
|
||||
}
|
||||
}
|
||||
if NavState.view == ContentView.artist: ArtistPageView {
|
||||
open-album(id) => {
|
||||
root.open-album(id);
|
||||
|
||||
Reference in new issue
Block a user