feat(slint): TrackRow favorites + artist/album links, PlaylistView, LabelView, scrollbar

CHECKPOINT — this batch is NOT yet acceptable; substantial feedback is pending. Committed so the work is preserved for rework next session, after a max-effort Tauri code review. Areas: TrackRow favorite toggle/state + clickable artist/album (TrackItem gains is-favorite/artist-id/album-id + fav_cache, populated across all builders); PlaylistView header buttons + cover-art hover overlay; LabelView full AlbumCard + grid/list toggle; vertical scrollbar moved to the right gutter across ~12 views.

cc
This commit is contained in:
vicrodh committed 2026-05-26 16:36:02 -06:00
1 parent a5383ba502
commit b2004e6867
24 files changed
+632 -103

No files matched your search

+11
View File
@@ -203,6 +203,14 @@ export struct TrackItem {
selected: bool,
artwork-url: string,
artwork: image,
// Favorite state — drives the heart fill and the optimistic toggle.
// Populated from the user's favorite-track set when each row is built.
is-favorite: bool,
// Ids for the clickable artist/album links in the row. Empty = the
// text is plain (not a link). artist-id -> artist view, album-id ->
// album view, both via the media-action bubble channel.
artist-id: string,
album-id: string,
}
// Album detail screen state.
@@ -1127,6 +1135,9 @@ export global LabelState {
in property <int> total: 0;
in property <bool> loading: false;
in property <bool> load-more-loading: false;
// "grid" | "list" — the view toggle (mirrors DiscoverBrowseView).
// UI-owned, like Discover's; no Rust round-trip needed.
in-out property <string> view-mode: "grid";
}
export global LabelActions {