feat(slint): favorites albums search + sort + shuffle
Add an expandable search (title / artist), a sort QbzSelect (Default / Title A-Z / Title Z-A / Artist A-Z) and a Shuffle header action (play a random visible album) to the Albums tab. albums-visible derives from the full albums set via derive_albums (shared model on the no-filter/default fast path, filtered+sorted clone otherwise — the label.rs::derive_releases pattern), and the count reflects the filter. cc
This commit is contained in:
4 files changed
+152
-3
No files matched your search
@@ -1457,7 +1457,10 @@ export global FavoritesState {
|
||||
in-out property <bool> tracks-multi-select: false;
|
||||
in property <int> tracks-selected-count: 0;
|
||||
in property <[AlbumCardItem]> albums: [];
|
||||
in property <[AlbumCardItem]> albums-visible: []; // after search + sort (what the grid/list renders)
|
||||
in-out property <string> albums-view-mode: "grid"; // "grid" | "list"
|
||||
in-out property <string> albums-search: "";
|
||||
in-out property <string> albums-sort-by: "default"; // default|title-asc|title-desc|artist-asc
|
||||
in property <[FavoriteArtistItem]> artists: [];
|
||||
in property <[FavoritePlaylistItem]> playlists: [];
|
||||
in property <[FavoriteLabelItem]> labels: [];
|
||||
@@ -1485,6 +1488,9 @@ export global FavoritesActions {
|
||||
callback toggle-multi-select();
|
||||
callback bulk-action(string /* select-all | remove-selected | clear */);
|
||||
callback album-action(string /* album id */, string /* action */);
|
||||
callback albums-search(string /* query */);
|
||||
callback albums-set-sort(string /* sort key */);
|
||||
callback albums-shuffle();
|
||||
}
|
||||
|
||||
// A Qobuz mix detail page (DailyQ / WeeklyQ / FavQ / TopQ), opened
|
||||
|
||||
Reference in new issue
Block a user