diff options
author | Tim Jenssen <tim.jenssen@nokia.com> | 2011-07-26 16:54:38 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-07-27 14:26:04 +0200 |
commit | 18991a0c97f99ebff1539720a5bdf05fc54ab0b2 (patch) | |
tree | eb083775983b47f5138ac53082e5274edd41d034 /installerbuilder/libinstaller/packagemanagercore.cpp | |
parent | a329c673a8a094840548d52b0b0be7adeb50a724 (diff) |
fix the important update check
Reviewed-By: Niels Weber
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r-- | installerbuilder/libinstaller/packagemanagercore.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp index 8242761bb..a60917e50 100644 --- a/installerbuilder/libinstaller/packagemanagercore.cpp +++ b/installerbuilder/libinstaller/packagemanagercore.cpp @@ -1601,6 +1601,8 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const data.components = &components; data.installedPackages = &locals; + bool foundImportantUpdate = false; + foreach (Package *const update, remotes) { QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this)); @@ -1639,6 +1641,10 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const if (localPackage.lastUpdateDate > updateDate) continue; + if (update->data(scImportant, scFalse).toString().toLower() == scTrue) { + foundImportantUpdate = true; + } + // this is not a dependency, it is a real update components.insert(name, d->m_updaterComponentsDeps.takeLast()); } @@ -1648,11 +1654,13 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const storeReplacedComponents(components, data); try { - // remove all unimportant updates - const QStringList &keys = components.keys(); - foreach (const QString &key, keys) { - if (components.value(key)->value(scImportant, scFalse).toLower() == scFalse) - delete components.take(key); + if (foundImportantUpdate) { + // remove all unimportant updates + const QStringList &keys = components.keys(); + foreach (const QString &key, keys) { + if (components.value(key)->value(scImportant, scFalse).toLower() == scFalse) + delete components.take(key); + } } if (!components.isEmpty()) { |