diff options
author | kh1 <karsten.heimrich@nokia.com> | 2011-08-24 14:45:47 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-08-24 14:56:58 +0200 |
commit | d12a1f929cbe6fe125d3225045b3ab2174ecf607 (patch) | |
tree | d7d16ce875c35a26387757d68b6f4dc5aad5f7a5 /installerbuilder/libinstaller/packagemanagercore.cpp | |
parent | 80fa40aa65be616f127d74a2147b11c4f5316b0c (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.cpp | 28 |
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 |