summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristoph VogtlÃĪnder <c.vogtlaender@sigma-surface-science.com>2015-01-21 15:24:51 +0100
committerKai Koehne <kai.koehne@theqtcompany.com>2015-01-23 17:04:25 +0100
commitbfae252a3270750d5d9b3dfb3c87e1f1633233fa (patch)
treec99d348e9ac4429ed08b02134abe7506b0ccd53f /src
parentb0dac0791b21e45cd63538bf6841393b79c869e2 (diff)
Use a UUID as uninstall registry subkey
Change-Id: I365e3bdf529bed7bff526b772d9dec5260d71ba4 Task-Id: QTIFW-615 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/constants.h1
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp14
-rw-r--r--src/libs/installer/packagemanagercore_p.h2
3 files changed, 11 insertions, 6 deletions
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index 8ad1b2f79..2956d76c2 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -87,6 +87,7 @@ static const QLatin1String scWizardStyle("WizardStyle");
static const QLatin1String scTitleColor("TitleColor");
static const QLatin1String scWizardDefaultWidth("WizardDefaultWidth");
static const QLatin1String scWizardDefaultHeight("WizardDefaultHeight");
+static const QLatin1String scProductUUID("ProductUUID");
}
#endif // CONSTANTS_H
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 7735f280c..4c35b5426 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -65,6 +65,7 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QDir>
#include <QtCore/QDirIterator>
+#include <QtCore/QUuid>
#include <QtCore/QFuture>
#include <QtCore/QFutureWatcher>
#include <QtCore/QTemporaryFile>
@@ -1375,19 +1376,22 @@ void PackageManagerCorePrivate::writeMaintenanceTool(OperationList performedOper
m_needToWriteMaintenanceTool = false;
}
-QString PackageManagerCorePrivate::registerPath() const
+QString PackageManagerCorePrivate::registerPath()
{
#ifdef Q_OS_WIN
- const QString productName = m_data.value(QLatin1String("ProductName")).toString();
- if (productName.isEmpty())
- throw Error(tr("ProductName should be set"));
+ QString guid = m_data.value(scProductUUID).toString();
+ if (guid.isEmpty()) {
+ m_data.setValue(scProductUUID, QUuid::createUuid().toString());
+ guid = m_data.value(scProductUUID).toString();
+ writeMaintenanceConfigFiles(); // save uuid persistently
+ }
QString path = QLatin1String("HKEY_CURRENT_USER");
if (m_data.value(QLatin1String("AllUsers")).toString() == scTrue)
path = QLatin1String("HKEY_LOCAL_MACHINE");
return path + QLatin1String("\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\")
- + productName;
+ + guid;
#endif
return QString();
}
diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h
index 55a25f9a8..e454247fe 100644
--- a/src/libs/installer/packagemanagercore_p.h
+++ b/src/libs/installer/packagemanagercore_p.h
@@ -117,7 +117,7 @@ public:
void setStatus(int status, const QString &error = QString());
QString targetDir() const;
- QString registerPath() const;
+ QString registerPath();
QString maintenanceToolName() const;
QString installerBinaryPath() const;