Desktop: "Play all" and "Play all shuffled" on the Tracks tab (and anywhere else missing them) #31

Open
opened 2026-08-18 05:56:10 +00:00 by logan · 0 comments
Collaborator

Report

The Tracks tab should have a play button and a play-shuffled button at the top so I can just put the whole library on. Those two buttons should be on every page with multiple tracks — a genre list, for instance (most other places already have them).

Findings

  • <page-header> (components/page-header/) is the one component carrying title/count/sort/actions for the nine primary views, so this is one action pair added there and passed by each host — not nine implementations.
  • Playback already has the right primitives: GetFilePathsByGenres(names, libraryID) and GetFilePathsByAlbums(ids, libraryID) return paths only, grouped so the caller keeps its order. A "play all tracks" equivalent should ask for paths only too, in the order the user can see, rather than mapping over track rows (that pattern cost 6 MB over the IPC for 5 genres).
  • SetQueue(paths, startIndex, shuffleStart, source) takes shuffleStart, so shuffled-play is the same call.

Direction

Add the pair to page-header's actions slot, wire the missing hosts (Tracks certainly; audit genres/artists/playlists), and set a correct Source so "Playing from" says something true (see the stale-source issue).

**Report** The Tracks tab should have a play button and a play-shuffled button at the top so I can just put the whole library on. Those two buttons should be on every page with multiple tracks — a genre list, for instance (most other places already have them). **Findings** - `<page-header>` (`components/page-header/`) is the one component carrying title/count/sort/actions for the nine primary views, so this is one action pair added there and passed by each host — not nine implementations. - Playback already has the right primitives: `GetFilePathsByGenres(names, libraryID)` and `GetFilePathsByAlbums(ids, libraryID)` return paths only, grouped so the caller keeps its order. A "play all tracks" equivalent should ask for paths only too, in the order the user can see, rather than mapping over track rows (that pattern cost 6 MB over the IPC for 5 genres). - `SetQueue(paths, startIndex, shuffleStart, source)` takes `shuffleStart`, so shuffled-play is the same call. **Direction** Add the pair to `page-header`'s actions slot, wire the missing hosts (Tracks certainly; audit genres/artists/playlists), and set a correct `Source` so "Playing from" says something true (see the stale-source issue).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yonlu/yellowjacket#31