Move a good chunk of the singleton objects into a new QApplication subclass.
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
#include "DownloadJob.h"
|
||||
#include "pathutils.h"
|
||||
#include "NetWorker.h"
|
||||
#include "MultiMC.h"
|
||||
|
||||
Download::Download (QUrl url, QString target_path, QString expected_md5 )
|
||||
:Job()
|
||||
@ -49,8 +49,8 @@ void Download::start()
|
||||
QNetworkRequest request ( m_url );
|
||||
request.setRawHeader(QString("If-None-Match").toLatin1(), m_expected_md5.toLatin1());
|
||||
|
||||
auto &worker = NetWorker::qnam();
|
||||
QNetworkReply * rep = worker.get ( request );
|
||||
auto worker = MMC->qnam();
|
||||
QNetworkReply * rep = worker->get ( request );
|
||||
|
||||
m_reply = QSharedPointer<QNetworkReply> ( rep, &QObject::deleteLater );
|
||||
connect ( rep, SIGNAL ( downloadProgress ( qint64,qint64 ) ), SLOT ( downloadProgress ( qint64,qint64 ) ) );
|
||||
|
@ -1,30 +0,0 @@
|
||||
#include "NetWorker.h"
|
||||
#include <QThreadStorage>
|
||||
|
||||
class NetWorker::Private
|
||||
{
|
||||
public:
|
||||
QNetworkAccessManager manager;
|
||||
};
|
||||
|
||||
NetWorker::NetWorker ( QObject* parent ) : QObject ( parent )
|
||||
{
|
||||
d = new Private();
|
||||
}
|
||||
|
||||
QNetworkAccessManager& NetWorker::qnam()
|
||||
{
|
||||
auto & w = worker();
|
||||
return w.d->manager;
|
||||
}
|
||||
|
||||
|
||||
NetWorker& NetWorker::worker()
|
||||
{
|
||||
static QThreadStorage<NetWorker *> storage;
|
||||
if (!storage.hasLocalData())
|
||||
{
|
||||
storage.setLocalData(new NetWorker());
|
||||
}
|
||||
return *storage.localData();
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
/*
|
||||
_.ooo-._
|
||||
.OOOP _ '.
|
||||
dOOOO (_) \
|
||||
OOOOOb |
|
||||
OOOOOOb. |
|
||||
OOOOOOOOb |
|
||||
YOO(_)OOO /
|
||||
'OOOOOY _.'
|
||||
'""""''
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QUrl>
|
||||
|
||||
class NetWorker : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
// for high level access to the sevices (preferred)
|
||||
static NetWorker &worker();
|
||||
// for low-level access to the network manager object
|
||||
static QNetworkAccessManager &qnam();
|
||||
public:
|
||||
|
||||
private:
|
||||
explicit NetWorker ( QObject* parent = 0 );
|
||||
class Private;
|
||||
Private * d;
|
||||
};
|
Reference in New Issue
Block a user