fix: sorting never changes the queue

Removed the sortApplied→syncQueueToModel connection. Sorting the track
list only reorders the view; the queue is only set when a track is
actually played (double-click or Play Now), at which point the current
sorted order and clicked row are used.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
joren
2026-03-24 01:01:18 +01:00
parent d5dedacc36
commit ecaee4d907
2 changed files with 3 additions and 14 deletions

View File

@@ -35,10 +35,6 @@ Tracks::Tracks(QobuzBackend *backend, PlayQueue *queue, QWidget *parent)
connect(this, &QTreeView::customContextMenuRequested, connect(this, &QTreeView::customContextMenuRequested,
this, &Tracks::onContextMenu); this, &Tracks::onContextMenu);
// Re-sync queue order whenever the model is re-sorted (user clicked header
// or setTracks re-applied an existing sort).
connect(m_model, &TrackListModel::sortApplied,
this, &Tracks::syncQueueToModel);
} }
void Tracks::loadTracks(const QJsonArray &tracks) void Tracks::loadTracks(const QJsonArray &tracks)
@@ -65,14 +61,9 @@ void Tracks::loadSearchTracks(const QJsonArray &tracks)
void Tracks::setPlayingTrackId(qint64 id) void Tracks::setPlayingTrackId(qint64 id)
{ {
m_playingId = id;
m_model->setPlayingId(id); m_model->setPlayingId(id);
} }
void Tracks::syncQueueToModel()
{
m_queue->reorderContext(m_model->currentTracksJson(), m_playingId);
}
void Tracks::onDoubleClicked(const QModelIndex &index) void Tracks::onDoubleClicked(const QModelIndex &index)
{ {

View File

@@ -29,13 +29,11 @@ namespace List
void playTrackRequested(qint64 trackId); void playTrackRequested(qint64 trackId);
private: private:
TrackListModel *m_model = nullptr; TrackListModel *m_model = nullptr;
QobuzBackend *m_backend = nullptr; QobuzBackend *m_backend = nullptr;
PlayQueue *m_queue = nullptr; PlayQueue *m_queue = nullptr;
qint64 m_playingId = 0;
void onDoubleClicked(const QModelIndex &index); void onDoubleClicked(const QModelIndex &index);
void onContextMenu(const QPoint &pos); void onContextMenu(const QPoint &pos);
void syncQueueToModel();
}; };
} }