refactor: UI polish — lock sidebar, remove nav buttons, uniform artist tables, deep shuffle
- Lock sidebar width (setFixedWidth) so it doesn't jump between views - Remove back/forward navigation buttons and all NavPage history code - Uniform column layout on artist page: hide Artist column from both Popular Tracks and release sections, set matching fixed column widths so columns align vertically across all sections - Deep shuffle: new Rust FFI endpoint fetches tracks from all albums in parallel, combines them, and returns via EV_DEEP_SHUFFLE_OK - Auto-paginate artist releases in Rust (loop until has_more=false) so all releases load at once sorted newest-first Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -67,6 +67,13 @@ void QobuzBackend::getArtistReleases(qint64 artistId, const QString &releaseType
|
||||
releaseType.toUtf8().constData(), limit, offset);
|
||||
}
|
||||
|
||||
void QobuzBackend::getAlbumsTracks(const QStringList &albumIds)
|
||||
{
|
||||
const QJsonArray arr = QJsonArray::fromStringList(albumIds);
|
||||
const QByteArray json = QJsonDocument(arr).toJson(QJsonDocument::Compact);
|
||||
qobuz_backend_get_albums_tracks(m_backend, json.constData());
|
||||
}
|
||||
|
||||
void QobuzBackend::getPlaylist(qint64 playlistId, quint32 offset, quint32 limit)
|
||||
{
|
||||
qobuz_backend_get_playlist(m_backend, playlistId, offset, limit);
|
||||
@@ -266,6 +273,9 @@ void QobuzBackend::onEvent(int eventType, const QString &json)
|
||||
obj["offset"].toInt()
|
||||
);
|
||||
break;
|
||||
case 25: // EV_DEEP_SHUFFLE_OK
|
||||
emit deepShuffleTracksLoaded(obj["tracks"].toArray());
|
||||
break;
|
||||
case EV_ARTIST_ERR:
|
||||
emit error(obj["error"].toString());
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user