diff options
author | kh1 <karsten.heimrich@nokia.com> | 2011-12-01 13:18:08 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@nokia.com> | 2011-12-01 14:39:54 +0100 |
commit | 2c8dddb5a346ee34a9134534763e9c6a276305cf (patch) | |
tree | 4bae897820f0a5c271cd19f823e14259db85b6d4 | |
parent | 7cc9a31a6c719c9ab27d12a2c819e2dc98fb9b4f (diff) |
Fix QTIFW-52.
Do not set the application name and version during init, as this
would set the packages info to modified. Thus if the packages info
goes out of scope would trigger an components xml write. We now
set the name and version when we start installing, or if is empty.
Change-Id: I8503bab55f7d614bc859f3a3773eb4a0f7816d48
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
-rw-r--r-- | installerbuilder/libinstaller/packagemanagercore_p.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp index d3a632d62..184a9d26a 100644 --- a/installerbuilder/libinstaller/packagemanagercore_p.cpp +++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp @@ -585,10 +585,12 @@ void PackageManagerCorePrivate::initialize() connect(this, SIGNAL(uninstallationStarted()), ProgressCoordinator::instance(), SLOT(reset())); m_updaterApplication.updateSourcesInfo()->setFileName(QString()); - m_updaterApplication.packagesInfo()->setFileName(componentsXmlPath()); - - m_updaterApplication.packagesInfo()->setApplicationName(m_settings.applicationName()); - m_updaterApplication.packagesInfo()->setApplicationVersion(m_settings.applicationVersion()); + KDUpdater::PackagesInfo &packagesInfo = *m_updaterApplication.packagesInfo(); + packagesInfo.setFileName(componentsXmlPath()); + if (packagesInfo.applicationName().isEmpty()) + packagesInfo.setApplicationName(m_settings.applicationName()); + if (packagesInfo.applicationVersion().isEmpty()) + packagesInfo.setApplicationVersion(m_settings.applicationVersion()); if (isInstaller()) { m_updaterApplication.addUpdateSource(m_settings.applicationName(), m_settings.applicationName(), @@ -1401,9 +1403,14 @@ void PackageManagerCorePrivate::runInstaller() componentsInstallPartProgressSize = double(1); // Force an update on the components xml as the install dir might have changed. - m_updaterApplication.packagesInfo()->setFileName(componentsXmlPath()); + KDUpdater::PackagesInfo &info = *m_updaterApplication.packagesInfo(); + info.setFileName(componentsXmlPath()); // Clear the packages as we might install into an already existing installation folder. - m_updaterApplication.packagesInfo()->clearPackageInfoList(); + info.clearPackageInfoList(); + // also update the applicatin name and version, might be set from a script as well + info.setApplicationName(m_core->value(QLatin1String("ProductName"), m_settings.applicationName())); + info.setApplicationVersion(m_core->value(QLatin1String("ProductVersion"), + m_settings.applicationVersion())); callBeginInstallation(componentsToInstall); stopProcessesForUpdates(componentsToInstall); @@ -1988,12 +1995,14 @@ LocalPackagesHash PackageManagerCorePrivate::localInstalledPackages() { LocalPackagesHash installedPackages; - KDUpdater::PackagesInfo &packagesInfo = *m_updaterApplication.packagesInfo(); if (!isInstaller()) { + KDUpdater::PackagesInfo &packagesInfo = *m_updaterApplication.packagesInfo(); if (!packagesInfo.isValid()) { packagesInfo.setFileName(componentsXmlPath()); - packagesInfo.setApplicationName(m_settings.applicationName()); - packagesInfo.setApplicationVersion(m_settings.applicationVersion()); + if (packagesInfo.applicationName().isEmpty()) + packagesInfo.setApplicationName(m_settings.applicationName()); + if (packagesInfo.applicationVersion().isEmpty()) + packagesInfo.setApplicationVersion(m_settings.applicationVersion()); } if (packagesInfo.error() != KDUpdater::PackagesInfo::NoError) |