summaryrefslogtreecommitdiffstats
path: root/mobile-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-05-26 15:22:22 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-05-26 09:19:42 -0700
commit0de862971e98a6db88562b1e3424ee9cd3024679 (patch)
tree47a3fcb2814a698814df790551b16c2316a1b687 /mobile-widgets
parentb18b10b46710728d898c3bfb786fd963e579e374 (diff)
downloadsubsurface-0de862971e98a6db88562b1e3424ee9cd3024679.tar.gz
Cleanup: remove reply and request member variables in QMLManager
The reply member variable was used to access the reply in the handleSslErrors, handleError and retrieveUserid slots. This is a very scary proposition in the light of multi-threading. Instead, the reply can be accessed by using the QObject::sender() function. Thus, we can remove the member variable. The request member was just downright weird. This was only used locally to describe a network request. Since QNetworkAccessManager::get() copies the request, it can be destructed right away. Nevertheless, the data was kept as a subobject. Remove member and make it function-local. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'mobile-widgets')
-rw-r--r--mobile-widgets/qmlmanager.cpp10
-rw-r--r--mobile-widgets/qmlmanager.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp
index 4434d3d20..4a15f26e0 100644
--- a/mobile-widgets/qmlmanager.cpp
+++ b/mobile-widgets/qmlmanager.cpp
@@ -130,7 +130,6 @@ void QMLManager::btRescan()
QMLManager::QMLManager() : m_locationServiceEnabled(false),
m_verboseEnabled(false),
- reply(0),
deletedDive(0),
deletedTrip(0),
m_updateSelectedDive(-1),
@@ -537,13 +536,13 @@ void QMLManager::tryRetrieveDataFromBackend()
// now check the redirect URL to make sure everything is set up on the cloud server
connect(manager(), &QNetworkAccessManager::authenticationRequired, this, &QMLManager::provideAuth, Qt::UniqueConnection);
QUrl url(CLOUDREDIRECTURL);
- request = QNetworkRequest(url);
+ QNetworkRequest request(url);
request.setRawHeader("User-Agent", getUserAgent().toUtf8());
request.setRawHeader("Accept", "text/html");
- reply = manager()->get(request);
+ QNetworkReply *reply = manager()->get(request);
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(handleError(QNetworkReply::NetworkError)));
connect(reply, &QNetworkReply::sslErrors, this, &QMLManager::handleSslErrors);
- connect(reply, &QNetworkReply::finished, this, &QMLManager::retrieveUserid, Qt::UniqueConnection);
+ connect(reply, &QNetworkReply::finished, this, &QMLManager::retrieveUserid);
}
}
@@ -566,6 +565,7 @@ void QMLManager::provideAuth(QNetworkReply *reply, QAuthenticator *auth)
void QMLManager::handleSslErrors(const QList<QSslError> &errors)
{
+ auto *reply = qobject_cast<QNetworkReply *>(sender());
setStartPageText(RED_FONT + tr("Cannot open cloud storage: Error creating https connection") + END_FONT);
Q_FOREACH (QSslError e, errors) {
appendTextToLog(e.errorString());
@@ -577,6 +577,7 @@ void QMLManager::handleSslErrors(const QList<QSslError> &errors)
void QMLManager::handleError(QNetworkReply::NetworkError nError)
{
+ auto *reply = qobject_cast<QNetworkReply *>(sender());
QString errorString = reply->errorString();
appendTextToLog(QStringLiteral("handleError ") + nError + QStringLiteral(": ") + errorString);
setStartPageText(RED_FONT + tr("Cannot open cloud storage: %1").arg(errorString) + END_FONT);
@@ -587,6 +588,7 @@ void QMLManager::handleError(QNetworkReply::NetworkError nError)
void QMLManager::retrieveUserid()
{
+ auto *reply = qobject_cast<QNetworkReply *>(sender());
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) != 302) {
appendTextToLog(QStringLiteral("Cloud storage connection not working correctly: (%1) %2")
.arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt())
diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h
index f632610f6..2f1236d76 100644
--- a/mobile-widgets/qmlmanager.h
+++ b/mobile-widgets/qmlmanager.h
@@ -216,8 +216,6 @@ private:
GpsLocation *locationProvider;
bool m_loadFromCloud;
static QMLManager *m_instance;
- QNetworkReply *reply;
- QNetworkRequest request;
struct dive *deletedDive;
struct dive_trip *deletedTrip;
QString m_notificationText;