Add /most-popular/get endpoint support (discovered via Burp):
- Returns mixed artists/albums/tracks ordered by popularity for a query
- New 'Top Results' tab shown first/default in the search panel
- Badge column: A (artist, blue), H (hi-res album, gold), A (album, gray), T (track, green)
- Full context menu support on all item types in the new tab
- Both most-popular and regular search fire on submit in parallel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add right-click context menus to search panel tracks (play, queue,
favorites, playlist, go to album/artist, track info) and albums
(open, favorite, go to artist)
- Add "Track info..." dialog showing metadata (title, performer,
composer, album, quality, hi-res status) — available everywhere:
playlists, albums, favorites, search results
- Split artist page shuffle into "Shuffle" (popular tracks) and
"Shuffle All" (deep shuffle across all releases)
- Remove magnifying glass emoji from welcome text
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Playlist management:
- Add/remove tracks from playlists via right-click context menu
- Create new playlists (right-click Playlists sidebar header)
- Delete playlists with confirmation dialog (right-click playlist item)
- Playlist view removes track immediately on delete (optimistic)
- Deleting currently-open playlist clears the track view
Gapless playback:
- Single long-running audio thread owns AudioOutput; CPAL stream stays
open between tracks eliminating device teardown/startup gap
- Decode runs inline on the audio thread; command channel polled via
try_recv() so Pause/Resume/Seek/Stop/Play all work without spawning
- New Play command arriving mid-decode is handled immediately,
reusing the same audio output for zero-gap transition
- Position timer reduced from 500 ms to 50 ms for faster track-end detection
- URL/metadata prefetch: when gapless is enabled Qt pre-fetches the next
track while the current one is still playing
ReplayGain:
- Toggled in Settings → Playback
- replaygain_track_gain (dB) from track audio_info converted to linear
gain factor and applied per-sample alongside volume
Qobuz dark theme:
- Background #191919, base #141414, accent #FFB232 (yellow-orange)
- Selection highlight, slider fill, scrollbar hover all use #FFB232
- Links use Qobuz blue #46B3EE
- Hi-res H badges updated to #FFB232 (from #FFD700)
- Now-playing row uses #FFB232 (was Spotify green)
- QSS stylesheet for scrollbars, menus, inputs, buttons, groups
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When the H badge column was added, TypeRole was accidentally stored in
col 1 but the double-click handler reads it from col 0, breaking album
navigation from search. Move TypeRole back to col 0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add QPalette::PlaceholderText (#8C8C8C) to the dark palette so
placeholder text in search box and settings fields is readable
- Add H column to search album results (same gold badge as album list view)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>