diff options
Diffstat (limited to 'connectiondata.cpp')
-rw-r--r-- | connectiondata.cpp | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/connectiondata.cpp b/connectiondata.cpp index 70791952..4e9bc77e 100644 --- a/connectiondata.cpp +++ b/connectiondata.cpp @@ -18,26 +18,15 @@ #include "connectiondata.h" +#include "networkaccessmanager.h" #include "logging.h" -#include <QtNetwork/QNetworkAccessManager> - using namespace QMatrixClient; -QNetworkAccessManager* createNam() -{ - auto nam = new QNetworkAccessManager(); - // See #109. Once Qt bearer management gets better, this workaround - // should become unnecessary. - nam->connect(nam, &QNetworkAccessManager::networkAccessibleChanged, - nam, [=] { - nam->setNetworkAccessible(QNetworkAccessManager::Accessible); - }); - return nam; -} - struct ConnectionData::Private { + explicit Private(const QUrl& url) : baseUrl(url) { } + QUrl baseUrl; QByteArray accessToken; QString lastEvent; @@ -48,16 +37,10 @@ struct ConnectionData::Private }; ConnectionData::ConnectionData(QUrl baseUrl) - : d(new Private) -{ - nam(); // Just to ensure NAM is created - d->baseUrl = baseUrl; -} + : d(std::make_unique<Private>(baseUrl)) +{ } -ConnectionData::~ConnectionData() -{ - delete d; -} +ConnectionData::~ConnectionData() = default; QByteArray ConnectionData::accessToken() const { @@ -71,8 +54,7 @@ QUrl ConnectionData::baseUrl() const QNetworkAccessManager* ConnectionData::nam() const { - static auto nam = createNam(); - return nam; + return NetworkAccessManager::instance(); } void ConnectionData::setBaseUrl(QUrl baseUrl) |