summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/updatemanager.cpp20
-rw-r--r--qt-ui/updatemanager.h1
-rw-r--r--qt-ui/usersurvey.cpp2
3 files changed, 22 insertions, 1 deletions
diff --git a/qt-ui/updatemanager.cpp b/qt-ui/updatemanager.cpp
index b920a8ebb..e972c4496 100644
--- a/qt-ui/updatemanager.cpp
+++ b/qt-ui/updatemanager.cpp
@@ -2,6 +2,7 @@
#include "usersurvey.h"
#include <QtNetwork>
#include <QMessageBox>
+#include <QUuid>
#include "subsurfacewebservices.h"
#include "ssrf-version.h"
#include "mainwindow.h"
@@ -47,7 +48,8 @@ void UpdateManager::checkForUpdates(bool automatic)
#endif
isAutomaticCheck = automatic;
QString version = CANONICAL_VERSION_STRING;
- QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&version=%2").arg(os, version);
+ QString uuidString = getUUID();
+ QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&version=%2&uuid=%3").arg(os, version, uuidString);
QNetworkRequest request;
request.setUrl(url);
request.setRawHeader("Accept", "text/xml");
@@ -56,6 +58,22 @@ void UpdateManager::checkForUpdates(bool automatic)
connect(SubsurfaceWebServices::manager()->get(request), SIGNAL(finished()), this, SLOT(requestReceived()), Qt::UniqueConnection);
}
+QString UpdateManager::getUUID()
+{
+ QString uuidString;
+ QSettings settings;
+ settings.beginGroup("UpdateManager");
+ if (settings.contains("UUID")) {
+ uuidString = settings.value("UUID").toString();
+ } else {
+ QUuid uuid = QUuid::createUuid();
+ uuidString = uuid.toString();
+ settings.setValue("UUID", uuidString);
+ }
+ uuidString.replace("{", "").replace("}", "");
+ return uuidString;
+}
+
void UpdateManager::requestReceived()
{
bool haveNewVersion = false;
diff --git a/qt-ui/updatemanager.h b/qt-ui/updatemanager.h
index 4e95d740f..f91c82dc8 100644
--- a/qt-ui/updatemanager.h
+++ b/qt-ui/updatemanager.h
@@ -11,6 +11,7 @@ class UpdateManager : public QObject {
public:
explicit UpdateManager(QObject *parent = 0);
void checkForUpdates(bool automatic = false);
+ static QString getUUID();
public
slots:
diff --git a/qt-ui/usersurvey.cpp b/qt-ui/usersurvey.cpp
index ed5d121e2..4061d46df 100644
--- a/qt-ui/usersurvey.cpp
+++ b/qt-ui/usersurvey.cpp
@@ -6,6 +6,7 @@
#include "ui_usersurvey.h"
#include "ssrf-version.h"
#include "subsurfacewebservices.h"
+#include "updatemanager.h"
#include "helpers.h"
#include "subsurfacesysinfo.h"
@@ -30,6 +31,7 @@ UserSurvey::UserSurvey(QWidget *parent) : QDialog(parent),
os.append(QString("&osCpuArch=%1").arg(osArch));
}
os.append(QString("&uiLang=%1").arg(uiLanguage(NULL)));
+ os.append(QString("&uuid=%1").arg(UpdateManager::getUUID()));
ui->system->setPlainText(getVersion());
}