feat: add playlist browse/search discovery and follow controls
Some checks failed
Build for Windows / build-windows (push) Has been cancelled
Some checks failed
Build for Windows / build-windows (push) Has been cancelled
This commit is contained in:
@@ -41,6 +41,13 @@ MainContent::MainContent(QobuzBackend *backend, PlayQueue *queue, QWidget *paren
|
||||
const qint64 id = m_header->artistId();
|
||||
if (id > 0) emit artistRequested(id);
|
||||
});
|
||||
QObject::connect(m_header->followButton(), &QPushButton::clicked,
|
||||
[this] {
|
||||
const qint64 id = m_header->playlistId();
|
||||
if (id <= 0 || m_header->playlistOwned())
|
||||
return;
|
||||
emit playlistFollowToggled(id, !m_header->playlistFollowed());
|
||||
});
|
||||
|
||||
m_albumList = new AlbumListView(this);
|
||||
m_artistList = new ArtistListView(this);
|
||||
@@ -62,6 +69,7 @@ MainContent::MainContent(QobuzBackend *backend, PlayQueue *queue, QWidget *paren
|
||||
connect(m_artistView, &ArtistView::playTrackRequested, this, &MainContent::playTrackRequested);
|
||||
connect(m_genreBrowser, &GenreBrowserView::albumSelected, this, &MainContent::albumRequested);
|
||||
connect(m_genreBrowser, &GenreBrowserView::artistSelected, this, &MainContent::artistRequested);
|
||||
connect(m_genreBrowser, &GenreBrowserView::playlistSelected, this, &MainContent::playlistRequested);
|
||||
}
|
||||
|
||||
void MainContent::showWelcome() { m_stack->setCurrentIndex(0); }
|
||||
@@ -73,9 +81,9 @@ void MainContent::showAlbum(const QJsonObject &album)
|
||||
m_stack->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
void MainContent::showPlaylist(const QJsonObject &playlist)
|
||||
void MainContent::showPlaylist(const QJsonObject &playlist, bool isFollowed, bool isOwned)
|
||||
{
|
||||
m_header->setPlaylist(playlist);
|
||||
m_header->setPlaylist(playlist, isFollowed, isOwned);
|
||||
m_tracks->loadPlaylist(playlist);
|
||||
m_stack->setCurrentIndex(1);
|
||||
}
|
||||
@@ -130,5 +138,18 @@ void MainContent::onDeepShuffleTracks(const QJsonArray &tracks)
|
||||
void MainContent::showGenreBrowser()
|
||||
{
|
||||
m_genreBrowser->ensureGenresLoaded();
|
||||
m_genreBrowser->setBrowseMode(GenreBrowserView::BrowseMode::Genres);
|
||||
m_stack->setCurrentIndex(5);
|
||||
}
|
||||
|
||||
void MainContent::showPlaylistBrowser()
|
||||
{
|
||||
m_genreBrowser->ensureGenresLoaded();
|
||||
m_genreBrowser->setBrowseMode(GenreBrowserView::BrowseMode::PlaylistSearch);
|
||||
m_stack->setCurrentIndex(5);
|
||||
}
|
||||
|
||||
void MainContent::setCurrentPlaylistFollowed(bool followed)
|
||||
{
|
||||
m_header->setPlaylistFollowed(followed);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user