summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/packagemanagercore.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-08-24 14:45:47 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-08-24 14:56:58 +0200
commitd12a1f929cbe6fe125d3225045b3ab2174ecf607 (patch)
treed7d16ce875c35a26387757d68b6f4dc5aad5f7a5 /installerbuilder/libinstaller/packagemanagercore.cpp
parent80fa40aa65be616f127d74a2147b11c4f5316b0c (diff)
Remove stupid check. Return the proper core status.
Also take into account the current status, break if it is already Canceled or Failure. Fix fetch remote packages, as it would set always Success, even if we already canceled. Change-Id: I3562d485c762c6df6ff230029bc678475afd5b2c Reviewed-on: http://codereview.qt.nokia.com/3502 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp
index ce22de0ca..d6079898a 100644
--- a/installerbuilder/libinstaller/packagemanagercore.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore.cpp
@@ -663,7 +663,7 @@ bool PackageManagerCore::fetchRemotePackagesTree()
success = fetchUpdaterPackages(packages, installedPackages);
}
- if (success)
+ if (success && !d->statusCanceledOrFailed())
d->setStatus(Success);
return success;
}
@@ -1533,8 +1533,10 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc
data.installedPackages = &locals;
foreach (Package *const package, remotes) {
- QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this));
+ if (d->statusCanceledOrFailed())
+ return false;
+ QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this));
data.package = package;
component->loadDataFromPackage(*package);
if (updateComponentData(data, component.data())) {
@@ -1549,6 +1551,9 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc
try {
// append all components to their respective parents
for (QHash<QString, Component*>::const_iterator it = components.begin(); it != components.end(); ++it) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
QString id = it.key();
QInstaller::Component *component = it.value();
while (!id.isEmpty() && component->parentComponent() == 0) {
@@ -1560,12 +1565,18 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc
// append all components w/o parent to the direct list
foreach (QInstaller::Component *component, components) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
if (component->parentComponent() == 0)
appendRootComponent(component);
}
// after everything is set up, load the scripts
foreach (QInstaller::Component *component, components) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
component->loadComponentScript();
// set the checked state for all components without child (means without tristate)
@@ -1602,8 +1613,10 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
bool foundImportantUpdate = false;
foreach (Package *const update, remotes) {
- QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this));
+ if (d->statusCanceledOrFailed())
+ return false;
+ QScopedPointer<QInstaller::Component> component(new QInstaller::Component(this));
data.package = update;
component->loadDataFromPackage(*update);
if (updateComponentData(data, component.data())) {
@@ -1657,6 +1670,9 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
// remove all unimportant updates
const QStringList &keys = components.keys();
foreach (const QString &key, keys) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
if (components.value(key)->value(scImportant, scFalse).toLower() == scFalse)
delete components.take(key);
}
@@ -1665,6 +1681,9 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
if (!components.isEmpty()) {
// load the scripts and append all components w/o parent to the direct list
foreach (QInstaller::Component *component, components) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
component->loadComponentScript();
component->setCheckState(Qt::Checked);
appendUpdaterComponent(component);
@@ -1672,6 +1691,9 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
// after everything is set up, check installed components
foreach (QInstaller::Component *component, d->m_updaterComponentsDeps) {
+ if (d->statusCanceledOrFailed())
+ return false;
+
if (component->isInstalled()) {
// since we do not put them into the model, which would force a update of e.g. tri state
// components, we have to check all installed components ourself