#pragma once #include "../list/tracks.hpp" #include "../backend/qobuzbackend.hpp" #include "../playqueue.hpp" #include "albumlistview.hpp" #include "artistlistview.hpp" #include "artistview.hpp" #include "trackcontextheader.hpp" #include #include #include #include #include class MainContent : public QWidget { Q_OBJECT public: explicit MainContent(QobuzBackend *backend, PlayQueue *queue, QWidget *parent = nullptr); List::Tracks *tracksList() const { return m_tracks; } void showWelcome(); void showAlbum(const QJsonObject &album); void showPlaylist(const QJsonObject &playlist); void showFavTracks(const QJsonObject &result); void showSearchTracks(const QJsonArray &tracks); void showFavAlbums(const QJsonObject &result); void showFavArtists(const QJsonObject &result); void showArtist(const QJsonObject &artist); signals: void albumRequested(const QString &albumId); void artistRequested(qint64 artistId); private: QobuzBackend *m_backend = nullptr; QStackedWidget *m_stack = nullptr; QLabel *m_welcome = nullptr; List::Tracks *m_tracks = nullptr; TrackContextHeader *m_header = nullptr; AlbumListView *m_albumList = nullptr; ArtistListView *m_artistList = nullptr; ArtistView *m_artistView = nullptr; };