fix: detect followed playlists correctly in header
Some checks failed
Build for Windows / build-windows (push) Has been cancelled

Load owner+subscriber playlists, track all playlist IDs for follow-state resolution, and keep audio ring buffer at 32k as requested.
This commit is contained in:
joren
2026-03-31 02:02:31 +02:00
parent 1ad3ba4e69
commit 4ebd5ed3f0
7 changed files with 24 additions and 10 deletions

View File

@@ -99,6 +99,7 @@ void Library::onUserPlaylistsLoaded(const QJsonObject &result)
while (m_playlistsNode->childCount() > 0)
delete m_playlistsNode->takeChild(0);
QSet<qint64> allPlaylistIds;
QVector<QPair<qint64, QString>> editablePlaylists;
const qint64 myUserId = AppSettings::instance().userId();
const QJsonArray items = result["items"].toArray();
@@ -109,6 +110,9 @@ void Library::onUserPlaylistsLoaded(const QJsonObject &result)
const qint64 ownId = static_cast<qint64>(pl["owner"].toObject()["id"].toDouble());
const bool isOwner = (myUserId > 0 && ownId == myUserId);
if (id > 0)
allPlaylistIds.insert(id);
auto *item = new QTreeWidgetItem(m_playlistsNode, QStringList{name});
item->setData(0, TypeRole, NodePlaylist);
item->setData(0, IdRole, id);
@@ -120,6 +124,7 @@ void Library::onUserPlaylistsLoaded(const QJsonObject &result)
editablePlaylists.append({id, name});
}
emit userPlaylistIdsChanged(allPlaylistIds);
emit userPlaylistsChanged(editablePlaylists);
}

View File

@@ -7,6 +7,7 @@
#include <QVector>
#include <QPair>
#include <QString>
#include <QSet>
namespace List
{
@@ -31,6 +32,8 @@ namespace List
void playlistRequested(qint64 playlistId, const QString &name);
/// Emitted after playlists are loaded so others can cache the list.
void userPlaylistsChanged(const QVector<QPair<qint64, QString>> &playlists);
/// Emitted with all user playlist IDs (owned + subscribed).
void userPlaylistIdsChanged(const QSet<qint64> &playlistIds);
/// Emitted when the currently open playlist was deleted.
void openPlaylistDeleted();