Refactoring
This commit is contained in:
@@ -38,8 +38,7 @@
|
||||
#include <QMenu>
|
||||
#include <QtEvents>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "core/application.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/mimedata.h"
|
||||
#include "collection/collectionbackend.h"
|
||||
@@ -53,7 +52,6 @@ using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
StreamingCollectionView::StreamingCollectionView(QWidget *parent)
|
||||
: AutoExpandingTreeView(parent),
|
||||
app_(nullptr),
|
||||
collection_backend_(nullptr),
|
||||
collection_model_(nullptr),
|
||||
filter_(nullptr),
|
||||
@@ -84,9 +82,8 @@ StreamingCollectionView::StreamingCollectionView(QWidget *parent)
|
||||
|
||||
}
|
||||
|
||||
void StreamingCollectionView::Init(Application *app, SharedPtr<CollectionBackend> collection_backend, CollectionModel *collection_model, const bool favorite) {
|
||||
void StreamingCollectionView::Init(const SharedPtr<CollectionBackend> collection_backend, CollectionModel *collection_model, const bool favorite) {
|
||||
|
||||
app_ = app;
|
||||
collection_backend_ = collection_backend;
|
||||
collection_model_ = collection_model;
|
||||
favorite_ = favorite;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
#include <QString>
|
||||
#include <QPixmap>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
|
||||
#include "widgets/autoexpandingtreeview.h"
|
||||
@@ -44,7 +44,6 @@ class QContextMenuEvent;
|
||||
class QMouseEvent;
|
||||
class QPaintEvent;
|
||||
|
||||
class Application;
|
||||
class CollectionBackend;
|
||||
class CollectionModel;
|
||||
class CollectionFilterWidget;
|
||||
@@ -55,13 +54,12 @@ class StreamingCollectionView : public AutoExpandingTreeView {
|
||||
public:
|
||||
explicit StreamingCollectionView(QWidget *parent = nullptr);
|
||||
|
||||
void Init(Application *app, SharedPtr<CollectionBackend> collection_backend, CollectionModel *collection_model, const bool favorite = false);
|
||||
void Init(const SharedPtr<CollectionBackend> collection_backend, CollectionModel *collection_model, const bool favorite = false);
|
||||
|
||||
// Returns Songs currently selected in the collection view.
|
||||
// Please note that the selection is recursive meaning that if for example an album is selected this will return all of it's songs.
|
||||
SongList GetSelectedSongs() const;
|
||||
|
||||
void SetApplication(Application *app);
|
||||
void SetFilter(CollectionFilterWidget *filter);
|
||||
|
||||
// QTreeView
|
||||
@@ -111,7 +109,6 @@ class StreamingCollectionView : public AutoExpandingTreeView {
|
||||
void SaveContainerPath(const QModelIndex &child);
|
||||
|
||||
private:
|
||||
Application *app_;
|
||||
SharedPtr<CollectionBackend> collection_backend_;
|
||||
CollectionModel *collection_model_;
|
||||
CollectionFilterWidget *filter_;
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include <QString>
|
||||
|
||||
#include "streamingcollectionview.h"
|
||||
#include "ui_streamingcollectionviewcontainer.h"
|
||||
|
||||
class QStackedWidget;
|
||||
class QPushButton;
|
||||
@@ -36,6 +35,8 @@ class QProgressBar;
|
||||
class QContextMenuEvent;
|
||||
class CollectionFilterWidget;
|
||||
|
||||
#include "ui_streamingcollectionviewcontainer.h"
|
||||
|
||||
class StreamingCollectionViewContainer : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
#include <QString>
|
||||
#include <QSize>
|
||||
|
||||
#include "core/mimedata.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/mimedata.h"
|
||||
#include "streamsongmimedata.h"
|
||||
#include "streamingservice.h"
|
||||
#include "streamingsearchmodel.h"
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <QIcon>
|
||||
#include <QPixmap>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "collection/collectionmodel.h"
|
||||
#include "streamingsearchview.h"
|
||||
|
||||
@@ -64,11 +64,10 @@
|
||||
#include <QShowEvent>
|
||||
#include <QHideEvent>
|
||||
|
||||
#include "core/application.h"
|
||||
#include "core/mimedata.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/song.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/settings.h"
|
||||
#include "core/mimedata.h"
|
||||
#include "collection/collectionfilterwidget.h"
|
||||
#include "collection/collectionmodel.h"
|
||||
#include "collection/groupbydialog.h"
|
||||
@@ -82,7 +81,7 @@
|
||||
#include "streamingsearchsortmodel.h"
|
||||
#include "streamingsearchview.h"
|
||||
#include "ui_streamingsearchview.h"
|
||||
#include "settings/appearancesettingspage.h"
|
||||
#include "constants/appearancesettings.h"
|
||||
|
||||
using std::make_unique;
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
@@ -95,7 +94,6 @@ constexpr int kArtHeight = 32;
|
||||
|
||||
StreamingSearchView::StreamingSearchView(QWidget *parent)
|
||||
: QWidget(parent),
|
||||
app_(nullptr),
|
||||
service_(nullptr),
|
||||
ui_(new Ui_StreamingSearchView),
|
||||
context_menu_(nullptr),
|
||||
@@ -149,10 +147,10 @@ StreamingSearchView::StreamingSearchView(QWidget *parent)
|
||||
|
||||
StreamingSearchView::~StreamingSearchView() { delete ui_; }
|
||||
|
||||
void StreamingSearchView::Init(Application *app, StreamingServicePtr service) {
|
||||
void StreamingSearchView::Init(const StreamingServicePtr service, const SharedPtr<AlbumCoverLoader> albumcover_loader) {
|
||||
|
||||
app_ = app;
|
||||
service_ = service;
|
||||
albumcover_loader_ = albumcover_loader;
|
||||
|
||||
front_model_ = new StreamingSearchModel(service, this);
|
||||
back_model_ = new StreamingSearchModel(service, this);
|
||||
@@ -180,7 +178,7 @@ void StreamingSearchView::Init(Application *app, StreamingServicePtr service) {
|
||||
QMenu *settings_menu = new QMenu(this);
|
||||
settings_menu->addActions(group_by_actions_->actions());
|
||||
settings_menu->addSeparator();
|
||||
settings_menu->addAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this, &StreamingSearchView::OpenSettingsDialog);
|
||||
settings_menu->addAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this, &StreamingSearchView::Configure);
|
||||
ui_->settings->setMenu(settings_menu);
|
||||
|
||||
swap_models_timer_->setSingleShot(true);
|
||||
@@ -202,8 +200,7 @@ void StreamingSearchView::Init(Application *app, StreamingServicePtr service) {
|
||||
QObject::connect(&*service_, &StreamingService::SearchUpdateProgress, this, &StreamingSearchView::UpdateProgress);
|
||||
QObject::connect(&*service_, &StreamingService::SearchResults, this, &StreamingSearchView::SearchDone);
|
||||
|
||||
QObject::connect(app_, &Application::SettingsChanged, this, &StreamingSearchView::ReloadSettings);
|
||||
QObject::connect(&*app_->album_cover_loader(), &AlbumCoverLoader::AlbumCoverLoaded, this, &StreamingSearchView::AlbumCoverLoaded);
|
||||
QObject::connect(&*albumcover_loader_, &AlbumCoverLoader::AlbumCoverLoaded, this, &StreamingSearchView::AlbumCoverLoaded);
|
||||
|
||||
QObject::connect(ui_->settings, &QToolButton::clicked, ui_->settings, &QToolButton::showMenu);
|
||||
|
||||
@@ -249,8 +246,8 @@ void StreamingSearchView::ReloadSettings() {
|
||||
}
|
||||
s.endGroup();
|
||||
|
||||
s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
|
||||
int iconsize = s.value(AppearanceSettingsPage::kIconSizeConfigureButtons, 20).toInt();
|
||||
s.beginGroup(AppearanceSettings::kSettingsGroup);
|
||||
int iconsize = s.value(AppearanceSettings::kIconSizeConfigureButtons, 20).toInt();
|
||||
s.endGroup();
|
||||
|
||||
ui_->settings->setIconSize(QSize(iconsize, iconsize));
|
||||
@@ -346,7 +343,7 @@ bool StreamingSearchView::ResultsContextMenuEvent(QContextMenuEvent *e) {
|
||||
context_menu_->addSeparator();
|
||||
context_menu_->addMenu(tr("Group by"))->addActions(group_by_actions_->actions());
|
||||
|
||||
context_menu_->addAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this, &StreamingSearchView::OpenSettingsDialog);
|
||||
context_menu_->addAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this, &StreamingSearchView::Configure);
|
||||
|
||||
}
|
||||
|
||||
@@ -677,8 +674,8 @@ void StreamingSearchView::FocusOnFilter(QKeyEvent *e) {
|
||||
|
||||
}
|
||||
|
||||
void StreamingSearchView::OpenSettingsDialog() {
|
||||
app_->OpenSettingsDialogAtPage(service_->settings_page());
|
||||
void StreamingSearchView::Configure() {
|
||||
Q_EMIT OpenSettingsDialog(service_->source());
|
||||
}
|
||||
|
||||
void StreamingSearchView::GroupByClicked(QAction *action) {
|
||||
@@ -857,7 +854,7 @@ void StreamingSearchView::LazyLoadAlbumCover(const QModelIndex &proxy_index) {
|
||||
else {
|
||||
AlbumCoverLoaderOptions cover_loader_options(AlbumCoverLoaderOptions::Option::ScaledImage | AlbumCoverLoaderOptions::Option::PadScaledImage);
|
||||
cover_loader_options.desired_scaled_size = QSize(kArtHeight, kArtHeight);
|
||||
quint64 loader_id = app_->album_cover_loader()->LoadImageAsync(cover_loader_options, result.metadata_);
|
||||
quint64 loader_id = albumcover_loader_->LoadImageAsync(cover_loader_options, result.metadata_);
|
||||
cover_loader_tasks_[loader_id] = qMakePair(source_index, result.pixmap_cache_key_);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
#include <QPixmap>
|
||||
#include <QMetaType>
|
||||
|
||||
#include "core/scoped_ptr.h"
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/scoped_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "collection/collectionmodel.h"
|
||||
#include "covermanager/albumcoverloaderresult.h"
|
||||
@@ -56,8 +56,8 @@ class QShowEvent;
|
||||
class QContextMenuEvent;
|
||||
class QTimerEvent;
|
||||
|
||||
class Application;
|
||||
class MimeData;
|
||||
class AlbumCoverLoader;
|
||||
class GroupByDialog;
|
||||
class StreamingService;
|
||||
class StreamingSearchModel;
|
||||
@@ -81,7 +81,7 @@ class StreamingSearchView : public QWidget {
|
||||
};
|
||||
using ResultList = QList<Result>;
|
||||
|
||||
void Init(Application *app, SharedPtr<StreamingService> service);
|
||||
void Init(const SharedPtr<StreamingService> service, const SharedPtr<AlbumCoverLoader> albumcover_loader);
|
||||
|
||||
bool SearchFieldHasFocus() const;
|
||||
void FocusSearchField();
|
||||
@@ -141,6 +141,7 @@ class StreamingSearchView : public QWidget {
|
||||
void AddArtistsSignal(const SongList &songs);
|
||||
void AddAlbumsSignal(const SongList &songs);
|
||||
void AddSongsSignal(const SongList &songs);
|
||||
void OpenSettingsDialog(const Song::Source source);
|
||||
|
||||
private Q_SLOTS:
|
||||
void SwapModels();
|
||||
@@ -163,7 +164,7 @@ class StreamingSearchView : public QWidget {
|
||||
void AddAlbums();
|
||||
void AddSongs();
|
||||
void SearchForThis();
|
||||
void OpenSettingsDialog();
|
||||
void Configure();
|
||||
|
||||
void SearchArtistsClicked(const bool checked);
|
||||
void SearchAlbumsClicked(const bool checked);
|
||||
@@ -177,8 +178,9 @@ class StreamingSearchView : public QWidget {
|
||||
void ReloadSettings();
|
||||
|
||||
private:
|
||||
Application *app_;
|
||||
SharedPtr<StreamingService> service_;
|
||||
SharedPtr<AlbumCoverLoader> albumcover_loader_;
|
||||
|
||||
Ui_StreamingSearchView *ui_;
|
||||
ScopedPtr<GroupByDialog> group_by_dialog_;
|
||||
|
||||
|
||||
@@ -22,15 +22,10 @@
|
||||
|
||||
#include "streamingservice.h"
|
||||
#include "core/song.h"
|
||||
#include "settings/settingsdialog.h"
|
||||
|
||||
class Application;
|
||||
|
||||
StreamingService::StreamingService(const Song::Source source, const QString &name, const QString &url_scheme, const QString &settings_group, const SettingsDialog::Page settings_page, Application *app, QObject *parent)
|
||||
StreamingService::StreamingService(const Song::Source source, const QString &name, const QString &url_scheme, const QString &settings_group, QObject *parent)
|
||||
: QObject(parent),
|
||||
app_(app),
|
||||
source_(source),
|
||||
name_(name),
|
||||
url_scheme_(url_scheme),
|
||||
settings_group_(settings_group),
|
||||
settings_page_(settings_page) {}
|
||||
settings_group_(settings_group) {}
|
||||
|
||||
@@ -28,12 +28,10 @@
|
||||
#include <QUrl>
|
||||
#include <QIcon>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "settings/settingsdialog.h"
|
||||
#include "streamingsearchview.h"
|
||||
|
||||
class Application;
|
||||
class CollectionBackend;
|
||||
class CollectionModel;
|
||||
class CollectionFilter;
|
||||
@@ -42,7 +40,7 @@ class StreamingService : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StreamingService(const Song::Source source, const QString &name, const QString &url_scheme, const QString &settings_group, const SettingsDialog::Page settings_page, Application *app, QObject *parent = nullptr);
|
||||
explicit StreamingService(const Song::Source source, const QString &name, const QString &url_scheme, const QString &settings_group, QObject *parent = nullptr);
|
||||
|
||||
~StreamingService() override {}
|
||||
virtual void Exit() {}
|
||||
@@ -51,7 +49,6 @@ class StreamingService : public QObject {
|
||||
virtual QString name() const { return name_; }
|
||||
virtual QString url_scheme() const { return url_scheme_; }
|
||||
virtual QString settings_group() const { return settings_group_; }
|
||||
virtual SettingsDialog::Page settings_page() const { return settings_page_; }
|
||||
virtual bool has_initial_load_settings() const { return false; }
|
||||
virtual void InitialLoadSettings() {}
|
||||
virtual void ReloadSettings() {}
|
||||
@@ -74,7 +71,7 @@ class StreamingService : public QObject {
|
||||
virtual CollectionFilter *songs_collection_filter_model() { return nullptr; }
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void ShowConfig() {}
|
||||
virtual void Configure() {}
|
||||
virtual void GetArtists() {}
|
||||
virtual void GetAlbums() {}
|
||||
virtual void GetSongs() {}
|
||||
@@ -133,15 +130,13 @@ class StreamingService : public QObject {
|
||||
void StreamURLFailure(const uint id, const QUrl &media_url, const QString &error);
|
||||
void StreamURLSuccess(const uint id, const QUrl &media_url, const QUrl &stream_url, const Song::FileType filetype, const int samplerate, const int bit_depth, const qint64 duration);
|
||||
|
||||
protected:
|
||||
Application *app_;
|
||||
void OpenSettingsDialog(const Song::Source source);
|
||||
|
||||
private:
|
||||
Song::Source source_;
|
||||
QString name_;
|
||||
QString url_scheme_;
|
||||
QString settings_group_;
|
||||
SettingsDialog::Page settings_page_;
|
||||
};
|
||||
|
||||
using StreamingServicePtr = SharedPtr<StreamingService>;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
|
||||
#include <core/shared_ptr.h>
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
|
||||
class StreamingService;
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <QPushButton>
|
||||
#include <QAction>
|
||||
|
||||
#include "core/application.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "collection/collectionbackend.h"
|
||||
#include "collection/collectionmodel.h"
|
||||
@@ -42,25 +41,23 @@
|
||||
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
StreamingSongsView::StreamingSongsView(Application *app, StreamingServicePtr service, const QString &settings_group, const SettingsDialog::Page settings_page, QWidget *parent)
|
||||
StreamingSongsView::StreamingSongsView(const StreamingServicePtr service, const QString &settings_group, QWidget *parent)
|
||||
: QWidget(parent),
|
||||
app_(app),
|
||||
service_(service),
|
||||
settings_group_(settings_group),
|
||||
settings_page_(settings_page),
|
||||
ui_(new Ui_StreamingCollectionViewContainer) {
|
||||
|
||||
ui_->setupUi(this);
|
||||
|
||||
ui_->stacked->setCurrentWidget(ui_->streamingcollection_page);
|
||||
ui_->view->Init(app_, service_->songs_collection_backend(), service_->songs_collection_model(), false);
|
||||
ui_->view->Init(service_->songs_collection_backend(), service_->songs_collection_model(), false);
|
||||
ui_->view->setModel(service_->songs_collection_filter_model());
|
||||
ui_->view->SetFilter(ui_->filter_widget);
|
||||
ui_->filter_widget->SetSettingsGroup(settings_group);
|
||||
ui_->filter_widget->Init(service_->songs_collection_model(), service_->songs_collection_filter_model());
|
||||
|
||||
QAction *action_configure = new QAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this);
|
||||
QObject::connect(action_configure, &QAction::triggered, this, &StreamingSongsView::OpenSettingsDialog);
|
||||
QObject::connect(action_configure, &QAction::triggered, this, &StreamingSongsView::Configure);
|
||||
ui_->filter_widget->AddMenuAction(action_configure);
|
||||
|
||||
QObject::connect(ui_->view, &StreamingCollectionView::GetSongs, this, &StreamingSongsView::GetSongs);
|
||||
@@ -93,15 +90,14 @@ void StreamingSongsView::ReloadSettings() {
|
||||
|
||||
}
|
||||
|
||||
void StreamingSongsView::OpenSettingsDialog() {
|
||||
app_->OpenSettingsDialogAtPage(service_->settings_page());
|
||||
void StreamingSongsView::Configure() {
|
||||
Q_EMIT OpenSettingsDialog(service_->source());
|
||||
}
|
||||
|
||||
|
||||
void StreamingSongsView::GetSongs() {
|
||||
|
||||
if (!service_->authenticated() && service_->oauth()) {
|
||||
service_->ShowConfig();
|
||||
Configure();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,22 +27,21 @@
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "settings/settingsdialog.h"
|
||||
#include "ui_streamingcollectionviewcontainer.h"
|
||||
|
||||
class QContextMenuEvent;
|
||||
|
||||
class Application;
|
||||
class StreamingService;
|
||||
class StreamingCollectionView;
|
||||
|
||||
#include "ui_streamingcollectionviewcontainer.h"
|
||||
|
||||
class StreamingSongsView : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StreamingSongsView(Application *app, SharedPtr<StreamingService> service, const QString &settings_group, const SettingsDialog::Page settings_page, QWidget *parent = nullptr);
|
||||
explicit StreamingSongsView(const SharedPtr<StreamingService> service, const QString &settings_group, QWidget *parent = nullptr);
|
||||
~StreamingSongsView() override;
|
||||
|
||||
void ReloadSettings();
|
||||
@@ -53,16 +52,17 @@ class StreamingSongsView : public QWidget {
|
||||
void FocusSearchField() { ui_->filter_widget->FocusSearchField(); }
|
||||
|
||||
private Q_SLOTS:
|
||||
void OpenSettingsDialog();
|
||||
void Configure();
|
||||
void GetSongs();
|
||||
void AbortGetSongs();
|
||||
void SongsFinished(const SongMap &songs, const QString &error);
|
||||
|
||||
Q_SIGNALS:
|
||||
void OpenSettingsDialog(const Song::Source source);
|
||||
|
||||
private:
|
||||
Application *app_;
|
||||
SharedPtr<StreamingService> service_;
|
||||
const SharedPtr<StreamingService> service_;
|
||||
QString settings_group_;
|
||||
SettingsDialog::Page settings_page_;
|
||||
Ui_StreamingCollectionViewContainer *ui_;
|
||||
};
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include <QAction>
|
||||
#include <QSettings>
|
||||
|
||||
#include "core/application.h"
|
||||
#include "core/iconloader.h"
|
||||
#include "core/settings.h"
|
||||
#include "collection/collectionbackend.h"
|
||||
@@ -48,27 +47,25 @@
|
||||
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
StreamingTabsView::StreamingTabsView(Application *app, StreamingServicePtr service, const QString &settings_group, const SettingsDialog::Page settings_page, QWidget *parent)
|
||||
StreamingTabsView::StreamingTabsView(const StreamingServicePtr service, const SharedPtr<AlbumCoverLoader> albumcover_loader, const QString &settings_group, QWidget *parent)
|
||||
: QWidget(parent),
|
||||
app_(app),
|
||||
service_(service),
|
||||
settings_group_(settings_group),
|
||||
settings_page_(settings_page),
|
||||
ui_(new Ui_StreamingTabsView) {
|
||||
|
||||
ui_->setupUi(this);
|
||||
|
||||
ui_->search_view->Init(app, service);
|
||||
ui_->search_view->Init(service, albumcover_loader);
|
||||
QObject::connect(ui_->search_view, &StreamingSearchView::AddArtistsSignal, &*service_, &StreamingService::AddArtists);
|
||||
QObject::connect(ui_->search_view, &StreamingSearchView::AddAlbumsSignal, &*service_, &StreamingService::AddAlbums);
|
||||
QObject::connect(ui_->search_view, &StreamingSearchView::AddSongsSignal, &*service_, &StreamingService::AddSongs);
|
||||
|
||||
QAction *action_configure = new QAction(IconLoader::Load(u"configure"_s), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this);
|
||||
QObject::connect(action_configure, &QAction::triggered, this, &StreamingTabsView::OpenSettingsDialog);
|
||||
QObject::connect(action_configure, &QAction::triggered, this, &StreamingTabsView::Configure);
|
||||
|
||||
if (service_->artists_collection_model()) {
|
||||
ui_->artists_collection->stacked()->setCurrentWidget(ui_->artists_collection->streamingcollection_page());
|
||||
ui_->artists_collection->view()->Init(app_, service_->artists_collection_backend(), service_->artists_collection_model(), true);
|
||||
ui_->artists_collection->view()->Init(service_->artists_collection_backend(), service_->artists_collection_model(), true);
|
||||
ui_->artists_collection->view()->setModel(service_->artists_collection_filter_model());
|
||||
ui_->artists_collection->view()->SetFilter(ui_->artists_collection->filter_widget());
|
||||
ui_->artists_collection->filter_widget()->SetSettingsGroup(settings_group);
|
||||
@@ -100,7 +97,7 @@ StreamingTabsView::StreamingTabsView(Application *app, StreamingServicePtr servi
|
||||
|
||||
if (service_->albums_collection_model()) {
|
||||
ui_->albums_collection->stacked()->setCurrentWidget(ui_->albums_collection->streamingcollection_page());
|
||||
ui_->albums_collection->view()->Init(app_, service_->albums_collection_backend(), service_->albums_collection_model(), true);
|
||||
ui_->albums_collection->view()->Init(service_->albums_collection_backend(), service_->albums_collection_model(), true);
|
||||
ui_->albums_collection->view()->setModel(service_->albums_collection_filter_model());
|
||||
ui_->albums_collection->view()->SetFilter(ui_->albums_collection->filter_widget());
|
||||
ui_->albums_collection->filter_widget()->SetSettingsGroup(settings_group);
|
||||
@@ -132,7 +129,7 @@ StreamingTabsView::StreamingTabsView(Application *app, StreamingServicePtr servi
|
||||
|
||||
if (service_->songs_collection_model()) {
|
||||
ui_->songs_collection->stacked()->setCurrentWidget(ui_->songs_collection->streamingcollection_page());
|
||||
ui_->songs_collection->view()->Init(app_, service_->songs_collection_backend(), service_->songs_collection_model(), true);
|
||||
ui_->songs_collection->view()->Init(service_->songs_collection_backend(), service_->songs_collection_model(), true);
|
||||
ui_->songs_collection->view()->setModel(service_->songs_collection_filter_model());
|
||||
ui_->songs_collection->view()->SetFilter(ui_->songs_collection->filter_widget());
|
||||
ui_->songs_collection->filter_widget()->SetSettingsGroup(settings_group);
|
||||
@@ -238,7 +235,7 @@ void StreamingTabsView::FocusSearchField() {
|
||||
void StreamingTabsView::GetArtists() {
|
||||
|
||||
if (!service_->authenticated() && service_->oauth()) {
|
||||
service_->ShowConfig();
|
||||
Configure();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -280,7 +277,7 @@ void StreamingTabsView::ArtistsFinished(const SongMap &songs, const QString &err
|
||||
void StreamingTabsView::GetAlbums() {
|
||||
|
||||
if (!service_->authenticated() && service_->oauth()) {
|
||||
service_->ShowConfig();
|
||||
Configure();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -322,7 +319,7 @@ void StreamingTabsView::AlbumsFinished(const SongMap &songs, const QString &erro
|
||||
void StreamingTabsView::GetSongs() {
|
||||
|
||||
if (!service_->authenticated() && service_->oauth()) {
|
||||
service_->ShowConfig();
|
||||
Configure();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -361,6 +358,6 @@ void StreamingTabsView::SongsFinished(const SongMap &songs, const QString &error
|
||||
|
||||
}
|
||||
|
||||
void StreamingTabsView::OpenSettingsDialog() {
|
||||
app_->OpenSettingsDialogAtPage(service_->settings_page());
|
||||
void StreamingTabsView::Configure() {
|
||||
Q_EMIT OpenSettingsDialog(service_->source());
|
||||
}
|
||||
|
||||
@@ -27,24 +27,24 @@
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "settings/settingsdialog.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "streamingcollectionviewcontainer.h"
|
||||
#include "ui_streamingtabsview.h"
|
||||
#include "core/song.h"
|
||||
|
||||
#include "ui_streamingtabsview.h"
|
||||
|
||||
class QContextMenuEvent;
|
||||
|
||||
class Application;
|
||||
class StreamingService;
|
||||
class StreamingCollectionView;
|
||||
class StreamingSearchView;
|
||||
class AlbumCoverLoader;
|
||||
|
||||
class StreamingTabsView : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StreamingTabsView(Application *app, SharedPtr<StreamingService> service, const QString &settings_group, const SettingsDialog::Page settings_page, QWidget *parent = nullptr);
|
||||
explicit StreamingTabsView(const SharedPtr<StreamingService> service, const SharedPtr<AlbumCoverLoader> albumcover_loader, const QString &settings_group, QWidget *parent = nullptr);
|
||||
~StreamingTabsView() override;
|
||||
|
||||
void ReloadSettings();
|
||||
@@ -58,7 +58,7 @@ class StreamingTabsView : public QWidget {
|
||||
void FocusSearchField();
|
||||
|
||||
private Q_SLOTS:
|
||||
void OpenSettingsDialog();
|
||||
void Configure();
|
||||
void GetArtists();
|
||||
void GetAlbums();
|
||||
void GetSongs();
|
||||
@@ -69,11 +69,12 @@ class StreamingTabsView : public QWidget {
|
||||
void AlbumsFinished(const SongMap &songs, const QString &error);
|
||||
void SongsFinished(const SongMap &songs, const QString &error);
|
||||
|
||||
Q_SIGNALS:
|
||||
void OpenSettingsDialog(const Song::Source source);
|
||||
|
||||
private:
|
||||
Application *app_;
|
||||
SharedPtr <StreamingService> service_;
|
||||
const SharedPtr <StreamingService> service_;
|
||||
QString settings_group_;
|
||||
SettingsDialog::Page settings_page_;
|
||||
Ui_StreamingTabsView *ui_;
|
||||
};
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include <QVariant>
|
||||
#include <QUrl>
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/song.h"
|
||||
#include "core/sqlrow.h"
|
||||
#include "playlist/playlistitem.h"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "streamsongmimedata.h"
|
||||
|
||||
StreamSongMimeData::StreamSongMimeData(SharedPtr<StreamingService> _service, QObject *parent) : service(_service) {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#ifndef STREAMSONGMIMEDATA_H
|
||||
#define STREAMSONGMIMEDATA_H
|
||||
|
||||
#include "core/shared_ptr.h"
|
||||
#include "includes/shared_ptr.h"
|
||||
#include "core/mimedata.h"
|
||||
#include "core/song.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user