summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-12-01 13:18:08 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2011-12-01 14:39:54 +0100
commit2c8dddb5a346ee34a9134534763e9c6a276305cf (patch)
tree4bae897820f0a5c271cd19f823e14259db85b6d4 /installerbuilder
parent7cc9a31a6c719c9ab27d12a2c819e2dc98fb9b4f (diff)
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>
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp27
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)