summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/packagemanagercore.cpp
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-07-26 16:54:38 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-07-27 14:26:04 +0200
commit18991a0c97f99ebff1539720a5bdf05fc54ab0b2 (patch)
treeeb083775983b47f5138ac53082e5274edd41d034 /installerbuilder/libinstaller/packagemanagercore.cpp
parenta329c673a8a094840548d52b0b0be7adeb50a724 (diff)
fix the important update check
Reviewed-By: Niels Weber
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp18
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()) {