feat: full artist release list via artist/getReleasesList

Instead of relying on the limited preview in artist/page, fire a
separate artist/getReleasesList request per release type (album,
epSingle, live, compilation) in parallel when loading an artist.
Each result updates its section independently as it arrives, so the
page populates progressively without a single large request.

Also fixes the artist name in the status bar (was reading wrong field).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
joren
2026-03-25 13:53:57 +01:00
parent 6f11b364aa
commit 5ae18afa08
10 changed files with 107 additions and 27 deletions

View File

@@ -61,6 +61,12 @@ void QobuzBackend::getArtist(qint64 artistId)
qobuz_backend_get_artist(m_backend, artistId);
}
void QobuzBackend::getArtistReleases(qint64 artistId, const QString &releaseType, quint32 limit, quint32 offset)
{
qobuz_backend_get_artist_releases(m_backend, artistId,
releaseType.toUtf8().constData(), limit, offset);
}
void QobuzBackend::getPlaylist(qint64 playlistId, quint32 offset, quint32 limit)
{
qobuz_backend_get_playlist(m_backend, playlistId, offset, limit);
@@ -242,6 +248,9 @@ void QobuzBackend::onEvent(int eventType, const QString &json)
case EV_ARTIST_OK:
emit artistLoaded(obj);
break;
case 24: // EV_ARTIST_RELEASES_OK
emit artistReleasesLoaded(obj["release_type"].toString(), obj["items"].toArray());
break;
case EV_ARTIST_ERR:
emit error(obj["error"].toString());
break;