- Add TrackContextHeader widget: shows album art (fetched via NAM), title, subtitle (artist/description), and metadata (year · tracks · duration) above the track list when an album or playlist is opened - Hide header for favorite tracks and search results - Store user ID in AppSettings on login - Only show "Delete playlist" for playlists the user owns - "Add to playlist" submenu only lists owned playlists - "Remove from this playlist" only appears when viewing an owned playlist Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
#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 <QWidget>
|
|
#include <QLabel>
|
|
#include <QStackedWidget>
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
|
|
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;
|
|
};
|