diff options
author | Christoph VogtlÃĪnder <c.vogtlaender@sigma-surface-science.com> | 2015-01-21 15:24:51 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-01-23 17:04:25 +0100 |
commit | bfae252a3270750d5d9b3dfb3c87e1f1633233fa (patch) | |
tree | c99d348e9ac4429ed08b02134abe7506b0ccd53f | |
parent | b0dac0791b21e45cd63538bf6841393b79c869e2 (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>
-rw-r--r-- | src/libs/installer/constants.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 14 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 2 |
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; |