diff options
-rw-r--r-- | qt-ui/updatemanager.cpp | 20 | ||||
-rw-r--r-- | qt-ui/updatemanager.h | 1 | ||||
-rw-r--r-- | qt-ui/usersurvey.cpp | 2 |
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()); } |