summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/installerfw.qdoc3
-rw-r--r--src/libs/installer/constants.h2
-rw-r--r--src/libs/installer/settings.cpp7
-rw-r--r--src/libs/installer/settings.h2
-rw-r--r--src/sdk/settingsdialog.cpp6
5 files changed, 19 insertions, 1 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc
index 00fa04c37..86496aba1 100644
--- a/doc/installerfw.qdoc
+++ b/doc/installerfw.qdoc
@@ -217,6 +217,9 @@
\o AllowNonAsciiCharacters
\o Set to \c true if the installation path can contain non-ASCII
characters.
+ \row
+ \o RepositorySettingsPageVisible
+ \o Set to \c false to hide the repository settings page inside the settings dialog.
\endtable
*/
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index ea512ed76..be11f5156 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -76,7 +76,7 @@ static const QLatin1String scRemoveTargetDir("RemoveTargetDir");
static const QLatin1String scRunProgramDescription("RunProgramDescription");
static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile");
static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters");
-
+static const QLatin1String scRepositorySettingsPageVisible("RepositorySettingsPageVisible");
}
#endif // CONSTANTS_H
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index e4d51491e..cb84d5438 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -235,6 +235,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix)
s.d->m_data.insert(scUninstallerIniFile, s.uninstallerName() + QLatin1String(".ini"));
if (!s.d->m_data.contains(scDependsOnLocalInstallerBinary))
s.d->m_data.insert(scDependsOnLocalInstallerBinary, false);
+ if (!s.d->m_data.contains(scRepositorySettingsPageVisible))
+ s.d->m_data.insert(scRepositorySettingsPageVisible, true);
return s;
}
@@ -501,6 +503,11 @@ QVariantHash Settings::subTitlesForPage(const QString &pageName) const
return variant.value<QVariantHash>();
}
+bool Settings::repositorySettingsPageVisible() const
+{
+ return d->m_data.value(scRepositorySettingsPageVisible, true).toBool();
+}
+
Settings::ProxyType Settings::proxyType() const
{
return Settings::ProxyType(d->m_data.value(scProxyType, Settings::NoProxy).toInt());
diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h
index ad7ad9e1f..52453e970 100644
--- a/src/libs/installer/settings.h
+++ b/src/libs/installer/settings.h
@@ -122,6 +122,8 @@ public:
QVariantHash titlesForPage(const QString &pageName) const;
QVariantHash subTitlesForPage(const QString &pageName) const;
+ bool repositorySettingsPageVisible() const;
+
Settings::ProxyType proxyType() const;
void setProxyType(Settings::ProxyType type);
diff --git a/src/sdk/settingsdialog.cpp b/src/sdk/settingsdialog.cpp
index 9f705b41a..0e237165c 100644
--- a/src/sdk/settingsdialog.cpp
+++ b/src/sdk/settingsdialog.cpp
@@ -361,6 +361,12 @@ SettingsDialog::SettingsDialog(QInstaller::PackageManagerCore *core, QWidget *pa
m_ui->m_useTmpRepositories->setChecked(settings.hasReplacementRepos());
m_ui->m_useTmpRepositories->setEnabled(settings.hasReplacementRepos());
m_ui->m_repositoriesView->setCurrentItem(m_rootItems.at(settings.hasReplacementRepos()));
+
+ if (!settings.repositorySettingsPageVisible()) {
+ // workaround a inconvenience that the page won't hide inside a QTabWidget
+ m_ui->m_repositories->setParent(this);
+ m_ui->m_repositories->setVisible(settings.repositorySettingsPageVisible());
+ }
}
void SettingsDialog::accept()