Use one instance of NetworkAccessManager
This commit is contained in:
@@ -132,7 +132,7 @@ void AlbumCoverChoiceController::Init(Application *app) {
|
||||
|
||||
app_ = app;
|
||||
|
||||
cover_fetcher_ = new AlbumCoverFetcher(app_->cover_providers(), this);
|
||||
cover_fetcher_ = new AlbumCoverFetcher(app_->cover_providers(), app->network(), this);
|
||||
cover_searcher_ = new AlbumCoverSearcher(QIcon(":/pictures/cdcase.png"), app, this);
|
||||
cover_searcher_->Init(cover_fetcher_);
|
||||
|
||||
@@ -322,7 +322,7 @@ QUrl AlbumCoverChoiceController::LoadCoverFromURL(Song *song) {
|
||||
|
||||
AlbumCoverImageResultPtr AlbumCoverChoiceController::LoadImageFromURL() {
|
||||
|
||||
if (!cover_from_url_dialog_) { cover_from_url_dialog_ = new CoverFromURLDialog(this); }
|
||||
if (!cover_from_url_dialog_) { cover_from_url_dialog_ = new CoverFromURLDialog(app_->network(), this); }
|
||||
|
||||
return cover_from_url_dialog_->Exec();
|
||||
|
||||
|
||||
@@ -37,10 +37,10 @@ using namespace std::chrono_literals;
|
||||
|
||||
const int AlbumCoverFetcher::kMaxConcurrentRequests = 5;
|
||||
|
||||
AlbumCoverFetcher::AlbumCoverFetcher(CoverProviders *cover_providers, QObject *parent, NetworkAccessManager *network)
|
||||
AlbumCoverFetcher::AlbumCoverFetcher(CoverProviders *cover_providers, NetworkAccessManager *network, QObject *parent)
|
||||
: QObject(parent),
|
||||
cover_providers_(cover_providers),
|
||||
network_(network ? network : new NetworkAccessManager(this)),
|
||||
network_(network),
|
||||
next_id_(0),
|
||||
request_starter_(new QTimer(this)) {
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ class AlbumCoverFetcher : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumCoverFetcher(CoverProviders *cover_providers, QObject *parent = nullptr, NetworkAccessManager *network = nullptr);
|
||||
explicit AlbumCoverFetcher(CoverProviders *cover_providers, NetworkAccessManager *network, QObject *parent = nullptr);
|
||||
~AlbumCoverFetcher() override;
|
||||
|
||||
static const int kMaxConcurrentRequests;
|
||||
|
||||
@@ -53,12 +53,12 @@
|
||||
#include "albumcoverloaderresult.h"
|
||||
#include "albumcoverimageresult.h"
|
||||
|
||||
AlbumCoverLoader::AlbumCoverLoader(QObject *parent)
|
||||
AlbumCoverLoader::AlbumCoverLoader(NetworkAccessManager *network, QObject *parent)
|
||||
: QObject(parent),
|
||||
network_(network),
|
||||
stop_requested_(false),
|
||||
load_image_async_id_(1),
|
||||
save_image_async_id_(1),
|
||||
network_(new NetworkAccessManager(this)),
|
||||
original_thread_(nullptr) {
|
||||
|
||||
original_thread_ = thread();
|
||||
|
||||
@@ -51,7 +51,7 @@ class AlbumCoverLoader : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumCoverLoader(QObject *parent = nullptr);
|
||||
explicit AlbumCoverLoader(NetworkAccessManager *network, QObject *parent = nullptr);
|
||||
|
||||
enum class State {
|
||||
None,
|
||||
@@ -135,6 +135,8 @@ class AlbumCoverLoader : public QObject {
|
||||
void NextState(TaskPtr task);
|
||||
TryLoadResult TryLoadImage(TaskPtr task);
|
||||
|
||||
NetworkAccessManager *network_;
|
||||
|
||||
bool stop_requested_;
|
||||
|
||||
QMutex mutex_load_image_async_;
|
||||
@@ -144,8 +146,6 @@ class AlbumCoverLoader : public QObject {
|
||||
quint64 load_image_async_id_;
|
||||
quint64 save_image_async_id_;
|
||||
|
||||
NetworkAccessManager *network_;
|
||||
|
||||
static const int kMaxRedirects = 3;
|
||||
|
||||
QThread *original_thread_;
|
||||
|
||||
@@ -106,7 +106,7 @@ AlbumCoverManager::AlbumCoverManager(Application *app, CollectionBackend *collec
|
||||
filter_all_(nullptr),
|
||||
filter_with_covers_(nullptr),
|
||||
filter_without_covers_(nullptr),
|
||||
cover_fetcher_(new AlbumCoverFetcher(app_->cover_providers(), this)),
|
||||
cover_fetcher_(new AlbumCoverFetcher(app_->cover_providers(), app_->network(), this)),
|
||||
cover_searcher_(nullptr),
|
||||
cover_export_(nullptr),
|
||||
cover_exporter_(new AlbumCoverExporter(this)),
|
||||
|
||||
@@ -40,7 +40,10 @@
|
||||
#include "coverfromurldialog.h"
|
||||
#include "ui_coverfromurldialog.h"
|
||||
|
||||
CoverFromURLDialog::CoverFromURLDialog(QWidget *parent) : QDialog(parent), ui_(new Ui_CoverFromURLDialog), network_(new NetworkAccessManager(this)) {
|
||||
CoverFromURLDialog::CoverFromURLDialog(NetworkAccessManager *network, QWidget *parent)
|
||||
: QDialog(parent),
|
||||
network_(network),
|
||||
ui_(new Ui_CoverFromURLDialog) {
|
||||
|
||||
ui_->setupUi(this);
|
||||
ui_->busy->hide();
|
||||
|
||||
@@ -40,7 +40,7 @@ class CoverFromURLDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CoverFromURLDialog(QWidget *parent = nullptr);
|
||||
explicit CoverFromURLDialog(NetworkAccessManager *network, QWidget *parent = nullptr);
|
||||
~CoverFromURLDialog() override;
|
||||
|
||||
// Opens the dialog. This returns an image found at the URL chosen by user or null image if the dialog got rejected.
|
||||
@@ -51,9 +51,8 @@ class CoverFromURLDialog : public QDialog {
|
||||
void LoadCoverFromURLFinished();
|
||||
|
||||
private:
|
||||
Ui_CoverFromURLDialog *ui_;
|
||||
|
||||
NetworkAccessManager *network_;
|
||||
Ui_CoverFromURLDialog *ui_;
|
||||
AlbumCoverImageResultPtr last_album_cover_;
|
||||
};
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <QSettings>
|
||||
|
||||
#include "core/logging.h"
|
||||
#include "core/networkaccessmanager.h"
|
||||
#include "coverprovider.h"
|
||||
#include "coverproviders.h"
|
||||
|
||||
@@ -38,7 +37,7 @@
|
||||
|
||||
int CoverProviders::NextOrderId = 0;
|
||||
|
||||
CoverProviders::CoverProviders(QObject *parent) : QObject(parent), network_(new NetworkAccessManager(this)) {}
|
||||
CoverProviders::CoverProviders(QObject *parent) : QObject(parent) {}
|
||||
|
||||
CoverProviders::~CoverProviders() {
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <QString>
|
||||
#include <QAtomicInt>
|
||||
|
||||
class NetworkAccessManager;
|
||||
class CoverProvider;
|
||||
|
||||
// This is a repository for cover providers.
|
||||
@@ -60,8 +59,6 @@ class CoverProviders : public QObject {
|
||||
|
||||
int NextId();
|
||||
|
||||
NetworkAccessManager *network() const { return network_; }
|
||||
|
||||
private slots:
|
||||
void ProviderDestroyed();
|
||||
|
||||
@@ -70,8 +67,6 @@ class CoverProviders : public QObject {
|
||||
|
||||
static int NextOrderId;
|
||||
|
||||
NetworkAccessManager *network_;
|
||||
|
||||
QMap<CoverProvider*, QString> cover_providers_;
|
||||
QMutex mutex_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user