summaryrefslogtreecommitdiffstats
path: root/src/sdk
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2012-10-17 17:03:35 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2012-10-18 13:02:20 +0200
commit4ad2fe4d4a4f77a6ffc2b36acd5c4c84a8c5a201 (patch)
treed18622aad9fe000ae7e7cc07e18337efcde80194 /src/sdk
parentb878ca377795e5e5bad16428683de711c3e60cdc (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')
-rw-r--r--src/sdk/installerbasecommons.cpp43
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