From 6c5fb656d63efddcdc7e98e58aae04f2ae718c50 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 16 May 2023 13:06:18 +0200 Subject: [PATCH] Utils: Make PagedSettings::readSettings() calls shorter Ideally, this would not be needed on the user code side at all, but there's no way to ensure the settings are read timing before sibling constructors might need it. So keep the 'poor man's two-phase initialization', but make it less intrusive. Change-Id: Ica7f6510cd05072d7286f4e85cd72c494e8f10f8 Reviewed-by: Alessandro Portale --- src/plugins/cmakeprojectmanager/cmakeformatter.cpp | 3 +-- src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp | 2 +- src/plugins/coreplugin/dialogs/ioptionspage.cpp | 5 +++++ src/plugins/coreplugin/dialogs/ioptionspage.h | 3 +++ src/plugins/cppcheck/cppcheckoptions.cpp | 2 +- src/plugins/docker/dockersettings.cpp | 4 +--- src/plugins/nim/settings/nimsettings.cpp | 2 +- src/plugins/qmakeprojectmanager/qmakesettings.cpp | 4 +--- src/plugins/vcpkg/vcpkgsettings.cpp | 4 +--- src/plugins/vcsbase/vcsbaseclient.cpp | 2 +- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeformatter.cpp b/src/plugins/cmakeprojectmanager/cmakeformatter.cpp index 3996946e470..778e04563da 100644 --- a/src/plugins/cmakeprojectmanager/cmakeformatter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeformatter.cpp @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -112,7 +111,7 @@ public: connect(EditorManager::instance(), &EditorManager::aboutToSave, this, &CMakeFormatterPrivate::applyIfNecessary); - readSettings(ICore::settings()); + readSettings(); } bool isApplicable(const IDocument *document) const; diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp index 5c22423a40d..7875f97ada2 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp @@ -95,7 +95,7 @@ CMakeSpecificSettings::CMakeSpecificSettings() showAdvancedOptionsByDefault.setLabelText( ::CMakeProjectManager::Tr::tr("Show advanced options by default")); - readSettings(Core::ICore::settings()); + readSettings(); } } // CMakeProjectManager::Internal diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.cpp b/src/plugins/coreplugin/dialogs/ioptionspage.cpp index 070cc6159b4..bb9b80a9133 100644 --- a/src/plugins/coreplugin/dialogs/ioptionspage.cpp +++ b/src/plugins/coreplugin/dialogs/ioptionspage.cpp @@ -309,4 +309,9 @@ PagedSettings::PagedSettings() setAutoApply(false); } +void PagedSettings::readSettings() +{ + return AspectContainer::readSettings(Core::ICore::settings()); +} + } // Core diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h index 256f729a9e4..96d9b6824af 100644 --- a/src/plugins/coreplugin/dialogs/ioptionspage.h +++ b/src/plugins/coreplugin/dialogs/ioptionspage.h @@ -132,6 +132,9 @@ class CORE_EXPORT PagedSettings : public Utils::AspectContainer, public IOptions { public: PagedSettings(); + + using AspectContainer::readSettings; // FIXME: Remove. + void readSettings(); // Intentionally hides AspectContainer::readSettings() }; } // namespace Core diff --git a/src/plugins/cppcheck/cppcheckoptions.cpp b/src/plugins/cppcheck/cppcheckoptions.cpp index 46ab82cfeea..37f537f2fee 100644 --- a/src/plugins/cppcheck/cppcheckoptions.cpp +++ b/src/plugins/cppcheck/cppcheckoptions.cpp @@ -121,7 +121,7 @@ CppcheckOptions::CppcheckOptions() setLayouter(layouter()); - readSettings(Core::ICore::settings()); + readSettings(); } std::function CppcheckOptions::layouter() diff --git a/src/plugins/docker/dockersettings.cpp b/src/plugins/docker/dockersettings.cpp index 4adb98af9cc..a43e7a20d3b 100644 --- a/src/plugins/docker/dockersettings.cpp +++ b/src/plugins/docker/dockersettings.cpp @@ -6,8 +6,6 @@ #include "dockerconstants.h" #include "dockertr.h" -#include - #include #include @@ -55,7 +53,7 @@ DockerSettings::DockerSettings() dockerBinaryPath.setLabelText(Tr::tr("Command:")); dockerBinaryPath.setSettingsKey("cli"); - readSettings(Core::ICore::settings()); + readSettings(); } } // Docker::Internal diff --git a/src/plugins/nim/settings/nimsettings.cpp b/src/plugins/nim/settings/nimsettings.cpp index d99ae2974b8..5e98b0fd536 100644 --- a/src/plugins/nim/settings/nimsettings.cpp +++ b/src/plugins/nim/settings/nimsettings.cpp @@ -92,7 +92,7 @@ NimSettings::NimSettings() nimSuggestPath.setExpectedKind(PathChooser::ExistingCommand); nimSuggestPath.setLabelText(Tr::tr("Path:")); - readSettings(Core::ICore::settings()); + readSettings(); } NimSettings::~NimSettings() diff --git a/src/plugins/qmakeprojectmanager/qmakesettings.cpp b/src/plugins/qmakeprojectmanager/qmakesettings.cpp index 5a05e5904d9..292851e444b 100644 --- a/src/plugins/qmakeprojectmanager/qmakesettings.cpp +++ b/src/plugins/qmakeprojectmanager/qmakesettings.cpp @@ -4,8 +4,6 @@ #include "qmakesettings.h" #include "qmakeprojectmanagertr.h" -#include - #include #include @@ -63,7 +61,7 @@ QmakeSettings::QmakeSettings() }.attachTo(widget); }); - readSettings(Core::ICore::settings()); + readSettings(); } } // QmakeProjectManager::Internal diff --git a/src/plugins/vcpkg/vcpkgsettings.cpp b/src/plugins/vcpkg/vcpkgsettings.cpp index 16622fe8b37..85b4b6f4faa 100644 --- a/src/plugins/vcpkg/vcpkgsettings.cpp +++ b/src/plugins/vcpkg/vcpkgsettings.cpp @@ -5,8 +5,6 @@ #include "vcpkgconstants.h" -#include - #include #include @@ -67,7 +65,7 @@ VcpkgSettings::VcpkgSettings() vcpkgRoot.setExpectedKind(Utils::PathChooser::ExistingDirectory); vcpkgRoot.setDefaultValue(Utils::qtcEnvironmentVariable(Constants::ENVVAR_VCPKG_ROOT)); - readSettings(Core::ICore::settings()); + readSettings(); } bool VcpkgSettings::vcpkgRootValid() const diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 527db5387c0..9bd83df3c37 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -57,7 +57,7 @@ namespace VcsBase { VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseSettings *baseSettings) : m_baseSettings(baseSettings) { - m_baseSettings->readSettings(ICore::settings()); + m_baseSettings->readSettings(); connect(ICore::instance(), &ICore::saveSettingsRequested, this, &VcsBaseClientImpl::saveSettings); }