summaryrefslogtreecommitdiffstats
path: root/installerbuilder
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
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')
-rw-r--r--installerbuilder/installerbase/tabcontroller.cpp10
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp28
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.h1
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp8
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;