diff options
-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; |