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 | |
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')
4 files changed, 34 insertions, 13 deletions
diff --git a/installerbuilder/installerbase/tabcontroller.cpp b/installerbuilder/installerbase/tabcontroller.cpp index 0e09adbed..10c6bd516 100644 --- a/installerbuilder/installerbase/tabcontroller.cpp +++ b/installerbuilder/installerbase/tabcontroller.cpp @@ -190,10 +190,7 @@ int TabController::initUpdater() else introPage->setComplete(true); } - - if (d->m_core->status() == PackageManagerCore::Canceled) - return PackageManagerCore::Canceled; - return PackageManagerCore::Success; + return d->m_core->status(); } int TabController::initUninstaller() @@ -264,10 +261,7 @@ int TabController::initPackageManager() if (d->m_allPackagesFetched | localPackagesTreeFetched) introPage->setComplete(true); - - if (d->m_core->status() == PackageManagerCore::Canceled) - return PackageManagerCore::Canceled; - return PackageManagerCore::Success; + return d->m_core->status(); } // -- private slots 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 diff --git a/installerbuilder/libinstaller/packagemanagercore.h b/installerbuilder/libinstaller/packagemanagercore.h index 09261845f..0995cac79 100644 --- a/installerbuilder/libinstaller/packagemanagercore.h +++ b/installerbuilder/libinstaller/packagemanagercore.h @@ -215,7 +215,6 @@ public Q_SLOTS: void cancelMetaInfoJob(); void componentsToInstallNeedsRecalculation(); - Q_SIGNALS: void componentAdded(QInstaller::Component *comp); void rootComponentsAdded(QList<QInstaller::Component*> components); diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp index 21f434f83..ef855409d 100644 --- a/installerbuilder/libinstaller/packagemanagercore_p.cpp +++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp @@ -1754,8 +1754,11 @@ LocalPackagesHash PackageManagerCorePrivate::localInstalledPackages() if (packagesInfo.error() != KDUpdater::PackagesInfo::NoError) setStatus(PackageManagerCore::Failure, tr("Failure to read packages from: %1.").arg(componentsXmlPath())); - foreach (const LocalPackage &package, packagesInfo.packageInfos()) + foreach (const LocalPackage &package, packagesInfo.packageInfos()) { + if (statusCanceledOrFailed()) + break; installedPackages.insert(package.name, package); + } } return installedPackages; @@ -1806,6 +1809,9 @@ bool PackageManagerCorePrivate::addUpdateResourcesFromRepositories(bool parseChe const QString &appName = m_settings.applicationName(); const QStringList tempDirs = m_repoMetaInfoJob->temporaryDirectories(); foreach (const QString &tmpDir, tempDirs) { + if (statusCanceledOrFailed()) + return false; + if (tmpDir.isEmpty()) continue; |