From 85083d74bc413cb0504fc6104cb0ae11b32d966b Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Mon, 3 Mar 2014 13:39:01 -0800 Subject: [PATCH] Fix for annoying "QThreadStorage" warning. --- interface/src/Application.cpp | 2 ++ libraries/shared/src/AccountManager.cpp | 12 ++++++------ libraries/shared/src/AccountManager.h | 4 +++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1092066edd..8c865f906c 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -358,6 +358,8 @@ Application::~Application() { _myAvatar = NULL; delete _glWidget; + + AccountManager::getInstance().destroy(); } void Application::restoreSizeAndPosition() { diff --git a/libraries/shared/src/AccountManager.cpp b/libraries/shared/src/AccountManager.cpp index 0f39ba4146..888d42ddda 100644 --- a/libraries/shared/src/AccountManager.cpp +++ b/libraries/shared/src/AccountManager.cpp @@ -35,7 +35,7 @@ const QString ACCOUNTS_GROUP = "accounts"; AccountManager::AccountManager() : _authURL(), - _networkAccessManager(), + _networkAccessManager(new QNetworkAccessManager(this)), _pendingCallbackMap(), _accountInfo() { @@ -130,16 +130,16 @@ void AccountManager::invokedRequest(const QString& path, QNetworkAccessManager:: switch (operation) { case QNetworkAccessManager::GetOperation: - networkReply = _networkAccessManager.get(authenticatedRequest); + networkReply = _networkAccessManager->get(authenticatedRequest); break; case QNetworkAccessManager::PostOperation: case QNetworkAccessManager::PutOperation: authenticatedRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); if (operation == QNetworkAccessManager::PostOperation) { - networkReply = _networkAccessManager.post(authenticatedRequest, dataByteArray); + networkReply = _networkAccessManager->post(authenticatedRequest, dataByteArray); } else { - networkReply = _networkAccessManager.put(authenticatedRequest, dataByteArray); + networkReply = _networkAccessManager->put(authenticatedRequest, dataByteArray); } break; @@ -242,7 +242,7 @@ void AccountManager::requestAccessToken(const QString& login, const QString& pas request.setUrl(grantURL); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); - QNetworkReply* requestReply = _networkAccessManager.post(request, postData); + QNetworkReply* requestReply = _networkAccessManager->post(request, postData); connect(requestReply, &QNetworkReply::finished, this, &AccountManager::requestFinished); connect(requestReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestError(QNetworkReply::NetworkError))); } @@ -292,4 +292,4 @@ void AccountManager::requestFinished() { void AccountManager::requestError(QNetworkReply::NetworkError error) { // TODO: error handling qDebug() << "AccountManager requestError - " << error; -} \ No newline at end of file +} diff --git a/libraries/shared/src/AccountManager.h b/libraries/shared/src/AccountManager.h index 654549791e..8b3c6b362c 100644 --- a/libraries/shared/src/AccountManager.h +++ b/libraries/shared/src/AccountManager.h @@ -53,6 +53,8 @@ public: QString getUsername() const { return _accountInfo.getUsername(); } + void destroy() { delete _networkAccessManager; } + public slots: void requestFinished(); void requestError(QNetworkReply::NetworkError error); @@ -76,7 +78,7 @@ private: const JSONCallbackParameters& callbackParams, const QByteArray& dataByteArray); QUrl _authURL; - QNetworkAccessManager _networkAccessManager; + QNetworkAccessManager* _networkAccessManager; QMap _pendingCallbackMap; DataServerAccountInfo _accountInfo;