diff options
Diffstat (limited to 'installerbuilder')
-rw-r--r-- | installerbuilder/libinstaller/packagemanagercore.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp index e32434a12..476d34650 100644 --- a/installerbuilder/libinstaller/packagemanagercore.cpp +++ b/installerbuilder/libinstaller/packagemanagercore.cpp @@ -1558,6 +1558,14 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc } } + foreach (const QString &key, locals.keys()) { + QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this)); + component->loadDataFromPackage(locals.value(key)); + const QString &name = component->name(); + if (!components.contains(name)) + components.insert(name, component.take()); + } + // store all components that got a replacement storeReplacedComponents(components, data); @@ -1581,6 +1589,7 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const data.installedPackages = &locals; bool foundEssentialUpdate = false; + LocalPackagesHash installedPackages = locals; foreach (Package *const update, remotes) { if (d->statusCanceledOrFailed()) @@ -1599,6 +1608,7 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const const QString &name = d->m_updaterComponentsDeps.last()->name(); const QString replaces = data.package->data(scReplaces).toString(); + installedPackages.take(name); // remove from local installed packages bool isValidUpdate = locals.contains(name); if (!isValidUpdate && !replaces.isEmpty()) { @@ -1631,6 +1641,12 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const } } + foreach (const QString &key, installedPackages.keys()) { + QInstaller::Component *component = new QInstaller::Component(this); + component->loadDataFromPackage(installedPackages.value(key)); + d->m_updaterComponentsDeps.append(component); + } + // store all components that got a replacement storeReplacedComponents(components, data); |