diff options
author | kh1 <karsten.heimrich@digia.com> | 2012-10-17 17:03:35 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2012-10-18 13:02:20 +0200 |
commit | 4ad2fe4d4a4f77a6ffc2b36acd5c4c84a8c5a201 (patch) | |
tree | d18622aad9fe000ae7e7cc07e18337efcde80194 /src/sdk/installerbasecommons.cpp | |
parent | b878ca377795e5e5bad16428683de711c3e60cdc (diff) |
"Update components" does not work (if no remote is defined)
Task-number: QTIFW-156
Disable the radio button in case there's no remote set. Notify
the user about invalid/ disabled repos in case there are some..
Change-Id: I2a8ba9f3e40455ed0cb8e3d23744d7a3f0f6dd4f
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/sdk/installerbasecommons.cpp')
-rw-r--r-- | src/sdk/installerbasecommons.cpp | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/src/sdk/installerbasecommons.cpp b/src/sdk/installerbasecommons.cpp index 2f6e04a30..8b62c0f18 100644 --- a/src/sdk/installerbasecommons.cpp +++ b/src/sdk/installerbasecommons.cpp @@ -131,19 +131,31 @@ bool IntroductionPageImpl::validatePage() // fetch updater packages if (core->isUpdater()) { - if (!m_updatesFetched) { - m_updatesFetched = core->fetchRemotePackagesTree(); - if (!m_updatesFetched) - setErrorMessage(core->error()); + bool reposAvailable = false; + foreach (const Repository &repo, core->settings().repositories()) { + if (repo.isEnabled() && repo.isValid()) { + reposAvailable = true; + break; + } } + if (reposAvailable) { + if (!m_updatesFetched) { + m_updatesFetched = core->fetchRemotePackagesTree(); + if (!m_updatesFetched) + setErrorMessage(core->error()); + } - callControlScript(QLatin1String("UpdaterSelectedCallback")); + callControlScript(QLatin1String("UpdaterSelectedCallback")); - if (m_updatesFetched) { - if (core->updaterComponents().count() <= 0) - setErrorMessage(QLatin1String("<b>") + tr("No updates available.") + QLatin1String("</b>")); - else - setComplete(true); + if (m_updatesFetched) { + if (core->updaterComponents().count() <= 0) + setErrorMessage(QLatin1String("<b>") + tr("No updates available.") + QLatin1String("</b>")); + else + setComplete(true); + } + } else { + setErrorMessage(QLatin1String("<font color=\"red\">") + tr("At least one enabled and valid " + "repository required to search for updates.") + QLatin1String("</font>")); } } @@ -212,8 +224,17 @@ void IntroductionPageImpl::showMaintenanceTools() void IntroductionPageImpl::setMaintenanceToolsEnabled(bool enable) { m_packageManager->setEnabled(enable); - m_updateComponents->setEnabled(enable); m_removeAllComponents->setEnabled(enable); + + // if there is no repo, disable the updater functionality + if (packageManagerCore()->settings().repositories().isEmpty()) { + m_updateComponents->setEnabled(false); + // while we can add a repo, check the updater and remove it again, monitor checked state too + if (m_updateComponents->isChecked()) + m_removeAllComponents->setChecked(true); + } else { + m_updateComponents->setEnabled(enable); + } } // -- public slots |