diff options
author | kh1 <qt-info@nokia.com> | 2011-06-30 14:03:22 +0200 |
---|---|---|
committer | kh1 <qt-info@nokia.com> | 2011-06-30 14:03:22 +0200 |
commit | 304d54ea1931b2c958769fb699d9f8dc2e1a7bc9 (patch) | |
tree | 966dd7db581500b971007b12aaa19536e8210026 /installerbuilder/installerbase/tabcontroller.cpp | |
parent | aea42ec8625e9e785d5b4048023144ed876ce6bf (diff) |
Implement package management even if we can't reach the repo.
If we can't reach the given repo or if no repo is set, we
still need to support package managment to be able to
uninstall components found on the hard disk drive.
Diffstat (limited to 'installerbuilder/installerbase/tabcontroller.cpp')
-rw-r--r-- | installerbuilder/installerbase/tabcontroller.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/installerbuilder/installerbase/tabcontroller.cpp b/installerbuilder/installerbase/tabcontroller.cpp index 6071d2a72..67c4a8d51 100644 --- a/installerbuilder/installerbase/tabcontroller.cpp +++ b/installerbuilder/installerbase/tabcontroller.cpp @@ -232,10 +232,19 @@ int TabController::initPackageManager() d->m_gui->setWindowModality(Qt::WindowModal); d->m_gui->show(); + bool localPackagesTreeFetched = false; if (!d->m_allPackagesFetched) { + // first try to fetch the server side packages tree d->m_allPackagesFetched = d->m_core->fetchAllPackages(); - if (!d->m_allPackagesFetched) - introPage->setErrorMessage(d->m_core->error()); + if (!d->m_allPackagesFetched) { + const QString error = d->m_core->error(); + // if that fails, try to fetch local installed tree + localPackagesTreeFetched = d->m_core->fetchLocalPackagesTree(); + if (!localPackagesTreeFetched) { + // if that still failed, show error message + introPage->setErrorMessage(error); + } + } } // Initialize the gui. Needs to be done after check repositories as only then the ui can handle @@ -250,7 +259,8 @@ int TabController::initPackageManager() } else { introPage->hideAll(); } - if (d->m_allPackagesFetched) + + if (d->m_allPackagesFetched | localPackagesTreeFetched) introPage->setComplete(true); if (d->m_core->status() == PackageManagerCore::Canceled) |