Files
qbz/crates/qbz-ui/ui/mix
vicrodh acfd3d928d feat(slint): keyboard multi-select on the built-out surfaces (Mix, Label, LocalLibrary Albums)
Extend the keyboard multi-select feature to the surfaces that had no
working selection in the Slint port.

- Mix (DailyQ/WeeklyQ/FavQ/TopQ all render through one MixView): mode
  toggle + MultiSelectBar, per-row checkbox via the central toggle arm + a
  ContentView::Mix branch (model + recount), bulk play-next/queue/
  add-to-playlist. Shift-range, Ctrl+A and Escape inherited automatically.
- Label Popular Tracks: was a dead stub (checkboxes with no bar/recount/
  router arms). Converted the local mode flag to LabelState.multi-select,
  added a real MultiSelectBar + label.rs recount/select_all/clear/selected,
  and the missing select-toggle/bulk router arms.
- LocalLibrary Albums grid (a previously-missing surface): AlbumCardItem
  gains a `selected` field; a `select-mode` prop is threaded through the
  shared AlbumCard / AlbumListRow / AlbumGrid / AlbumCollectionView (default
  false, so Discover/Label/Favorites are untouched). Albums toolbar toggle
  + MultiSelectBar; local_library.rs album select fns (flat + grouped,
  id-resilient Shift-range over AlbumCardItem); album->tracks bulk resolve
  via fetch_album_tracks_blocking on spawn_blocking for queue/play-next/
  add-to-playlist/add-to-mixtape; Ctrl+A and Escape routed by active-tab.

cargo check -p qbz green (qbz_ui compiles clean).

cc
2026-06-29 14:53:31 -06:00
..