feat: playlist art fix + Play/Shuffle buttons in context header
- Fix playlist art: API returns images/images150/images300 arrays, not image_rectangle; update Rust model and Qt header to use images300 → images150 → images with fallback - Add Play (▶) and Shuffle (⇄) buttons to the album/playlist header; Play starts from track 1, Shuffle enables shuffle mode and plays from a randomised position Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -84,6 +84,17 @@ void Tracks::setPlayingTrackId(qint64 id)
|
||||
m_model->setPlayingId(id);
|
||||
}
|
||||
|
||||
void Tracks::playAll(bool shuffle)
|
||||
{
|
||||
const QJsonArray tracks = m_model->currentTracksJson();
|
||||
if (tracks.isEmpty()) return;
|
||||
m_queue->setShuffle(shuffle);
|
||||
m_queue->setContext(tracks, 0);
|
||||
const qint64 firstId = static_cast<qint64>(m_queue->current()["id"].toDouble());
|
||||
if (firstId > 0)
|
||||
emit playTrackRequested(firstId);
|
||||
}
|
||||
|
||||
|
||||
void Tracks::onDoubleClicked(const QModelIndex &index)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,10 @@ namespace List
|
||||
/// Called when the backend fires EV_TRACK_CHANGED so the playing row is highlighted.
|
||||
void setPlayingTrackId(qint64 id);
|
||||
|
||||
/// Start playing all tracks in the current view from the beginning.
|
||||
/// If shuffle is true, enables shuffle mode before starting.
|
||||
void playAll(bool shuffle = false);
|
||||
|
||||
/// Set which playlist is currently displayed (0 = none).
|
||||
/// isOwned controls whether "Remove from this playlist" is shown.
|
||||
void setPlaylistContext(qint64 playlistId, bool isOwned = false);
|
||||
|
||||
Reference in New Issue
Block a user