summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-07-16 17:20:21 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-07-16 13:56:46 -0700
commit0dd40b7a514a2ea02c2f4160a74b23c0fb9a41dd (patch)
tree466d6e7e87c7a8a808a87484555431dad535e13d
parentbbbb4ced241c156a2500334ff29ba0ea496d3811 (diff)
downloadsubsurface-0dd40b7a514a2ea02c2f4160a74b23c0fb9a41dd.tar.gz
Rely on QNetworkReply finished() signal instead of AccessManager one
The access manager is only one, while we can make requests from different parts of the application, so relying on the manager finished() signal to see if something was done or not was a not very good move. The QNetworkReply is created when a get() is invocked on the AccessManager and that's unique. connect it's finished() signal instead. bonus: code cleanup. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/subsurfacewebservices.cpp3
-rw-r--r--qt-ui/subsurfacewebservices.h2
-rw-r--r--qt-ui/updatemanager.cpp8
-rw-r--r--qt-ui/updatemanager.h4
-rw-r--r--qt-ui/usersurvey.cpp8
-rw-r--r--qt-ui/usersurvey.h5
6 files changed, 11 insertions, 19 deletions
diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp
index 23972587e..daeb5385c 100644
--- a/qt-ui/subsurfacewebservices.cpp
+++ b/qt-ui/subsurfacewebservices.cpp
@@ -917,10 +917,11 @@ UserSurveyServices::UserSurveyServices(QWidget *parent, Qt::WindowFlags f) : Web
}
-void UserSurveyServices::sendSurvey(QString values)
+QNetworkReply* UserSurveyServices::sendSurvey(QString values)
{
QNetworkRequest request;
request.setUrl(QString("http://subsurface.hohndel.org/survey?%1").arg(values));
request.setRawHeader("Accept", "text/xml");
reply = manager()->get(request);
+ return reply;
}
diff --git a/qt-ui/subsurfacewebservices.h b/qt-ui/subsurfacewebservices.h
index f2138ac6f..97f35f235 100644
--- a/qt-ui/subsurfacewebservices.h
+++ b/qt-ui/subsurfacewebservices.h
@@ -100,7 +100,7 @@ private:
class UserSurveyServices : public WebServices {
Q_OBJECT
public:
- void sendSurvey(QString values);
+ QNetworkReply* sendSurvey(QString values);
explicit UserSurveyServices(QWidget *parent = 0, Qt::WindowFlags f = 0);
private
slots:
diff --git a/qt-ui/updatemanager.cpp b/qt-ui/updatemanager.cpp
index 51292fcbd..b790a6104 100644
--- a/qt-ui/updatemanager.cpp
+++ b/qt-ui/updatemanager.cpp
@@ -6,8 +6,6 @@
UpdateManager::UpdateManager(QObject *parent) : QObject(parent)
{
- manager = SubsurfaceWebServices::manager();
- connect(manager, SIGNAL(finished(QNetworkReply *)), SLOT(requestReceived(QNetworkReply *)));
}
void UpdateManager::checkForUpdates()
@@ -26,16 +24,16 @@ void UpdateManager::checkForUpdates()
QString version = VERSION_STRING;
QString url = QString("http://subsurface.hohndel.org/updatecheck.html?os=%1&ver=%2").arg(os, version);
- manager->get(QNetworkRequest(QUrl(url)));
+ connect(SubsurfaceWebServices::manager()->get(QNetworkRequest(QUrl(url))), SIGNAL(finished()), this, SLOT(requestReceived()));
}
-void UpdateManager::requestReceived(QNetworkReply *reply)
+void UpdateManager::requestReceived()
{
QMessageBox msgbox;
QString msgTitle = tr("Check for updates.");
QString msgText = "<h3>" + tr("Subsurface was unable to check for updates.") + "</h3>";
-
+ QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if (reply->error() != QNetworkReply::NoError) {
//Network Error
msgText = msgText + "<br/><b>" + tr("The following error occurred:") + "</b><br/>" + reply->errorString()
diff --git a/qt-ui/updatemanager.h b/qt-ui/updatemanager.h
index 561c53d0b..98b84021d 100644
--- a/qt-ui/updatemanager.h
+++ b/qt-ui/updatemanager.h
@@ -12,11 +12,9 @@ public:
explicit UpdateManager(QObject *parent = 0);
void checkForUpdates();
-private:
- QNetworkAccessManager *manager;
public
slots:
- void requestReceived(QNetworkReply *reply);
+ void requestReceived();
};
#endif // UPDATEMANAGER_H
diff --git a/qt-ui/usersurvey.cpp b/qt-ui/usersurvey.cpp
index 997064042..24e2070e0 100644
--- a/qt-ui/usersurvey.cpp
+++ b/qt-ui/usersurvey.cpp
@@ -40,8 +40,6 @@ UserSurvey::UserSurvey(QWidget *parent) : QDialog(parent),
sysInfo.append(tr("\nLanguage: %1").arg(uiLanguage(NULL)));
os.append(QString("&uiLang=%1").arg(uiLanguage(NULL)));
ui->system->setPlainText(sysInfo);
- manager = SubsurfaceWebServices::manager();
- connect(manager, SIGNAL(finished(QNetworkReply *)), SLOT(requestReceived(QNetworkReply *)));
}
UserSurvey::~UserSurvey()
@@ -64,7 +62,7 @@ void UserSurvey::on_buttonBox_accepted()
ADD_OPTION(companion);
values.append(QString("&suggestion=%1").arg(ui->suggestions->toPlainText()));
UserSurveyServices uss(this);
- uss.sendSurvey(values);
+ connect(uss.sendSurvey(values), SIGNAL(finished()), SLOT(requestReceived()));
hide();
}
@@ -90,13 +88,13 @@ void UserSurvey::on_buttonBox_rejected()
hide();
}
-void UserSurvey::requestReceived(QNetworkReply *reply)
+void UserSurvey::requestReceived()
{
QMessageBox msgbox;
QString msgTitle = tr("Submit user survey.");
QString msgText = "<h3>" + tr("Subsurface was unable to submit the user survey.") + "</h3>";
-
+ QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if (reply->error() != QNetworkReply::NoError) {
//Network Error
msgText = msgText + "<br/><b>" + tr("The following error occurred:") + "</b><br/>" + reply->errorString()
diff --git a/qt-ui/usersurvey.h b/qt-ui/usersurvey.h
index b9221852b..8dacb7bb8 100644
--- a/qt-ui/usersurvey.h
+++ b/qt-ui/usersurvey.h
@@ -20,13 +20,10 @@ private
slots:
void on_buttonBox_accepted();
void on_buttonBox_rejected();
- void requestReceived(QNetworkReply *reply);
+ void requestReceived();
private:
Ui::UserSurvey *ui;
QString os;
- QString checkboxes;
- QString suggestions;
- QNetworkAccessManager *manager;
};
#endif // USERSURVEY_H