Move a good chunk of the singleton objects into a new QApplication subclass.

This commit is contained in:
Petr Mrázek
2013-09-07 04:00:58 +02:00
parent 3f30055afe
commit 6892c11e9f
32 changed files with 491 additions and 631 deletions

View File

@ -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 ) ) );

View File

@ -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();
}

View File

@ -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;
};