Utils: Make aspect settings access implicit

Generally, aspects should use fromMap/toMap, but some older pages
use {from,to}Settings with always the same ICore::settings().

To make that less intrusive on the user code side, make that globally
implicit.

Task-number: QTCREATORBUG-29167
Change-Id: I29a8e23a31eb8061bb143e93931a07c6741eb7f9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-07-06 09:57:16 +02:00
parent 9f1b56e91a
commit 91513a53dd
37 changed files with 111 additions and 123 deletions

View File

@@ -12,6 +12,7 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/appinfo.h> #include <utils/appinfo.h>
#include <utils/aspects.h>
#include <utils/environment.h> #include <utils/environment.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/fsengine/fsengine.h> #include <utils/fsengine/fsengine.h>
@@ -654,6 +655,8 @@ int main(int argc, char **argv)
PluginManager::setGlobalSettings(globalSettings); PluginManager::setGlobalSettings(globalSettings);
PluginManager::setSettings(settings); PluginManager::setSettings(settings);
Utils::BaseAspect::setGlobalSettings(globalSettings);
using namespace Core; using namespace Core;
Utils::AppInfo info; Utils::AppInfo info;
info.author = Constants::IDE_AUTHOR; info.author = Constants::IDE_AUTHOR;

View File

@@ -34,6 +34,19 @@
using namespace Layouting; using namespace Layouting;
namespace Utils { namespace Utils {
static QSettings *theSettings = nullptr;
void BaseAspect::setGlobalSettings(QSettings *settings)
{
theSettings = settings;
}
QSettings *BaseAspect::settings()
{
return theSettings;
}
namespace Internal { namespace Internal {
class BaseAspectPrivate class BaseAspectPrivate
@@ -552,19 +565,19 @@ void BaseAspect::toMap(QVariantMap &map) const
saveToMap(map, toSettingsValue(variantValue()), toSettingsValue(defaultVariantValue()), settingsKey()); saveToMap(map, toSettingsValue(variantValue()), toSettingsValue(defaultVariantValue()), settingsKey());
} }
void BaseAspect::readSettings(const QSettings *settings) void BaseAspect::readSettings()
{ {
if (settingsKey().isEmpty()) if (settingsKey().isEmpty())
return; return;
const QVariant &val = settings->value(settingsKey()); const QVariant val = settings()->value(settingsKey());
setVariantValue(val.isValid() ? fromSettingsValue(val) : defaultVariantValue()); setVariantValue(val.isValid() ? fromSettingsValue(val) : defaultVariantValue());
} }
void BaseAspect::writeSettings(QSettings *settings) const void BaseAspect::writeSettings() const
{ {
if (settingsKey().isEmpty()) if (settingsKey().isEmpty())
return; return;
QtcSettings::setValueWithDefault(settings, QtcSettings::setValueWithDefault(settings(),
settingsKey(), settingsKey(),
toSettingsValue(variantValue()), toSettingsValue(variantValue()),
toSettingsValue(defaultVariantValue())); toSettingsValue(defaultVariantValue()));
@@ -2314,28 +2327,30 @@ void AspectContainer::toMap(QVariantMap &map) const
aspect->toMap(map); aspect->toMap(map);
} }
void AspectContainer::readSettings(QSettings *settings) void AspectContainer::readSettings()
{ {
QTC_ASSERT(theSettings, return);
for (const QString &group : d->m_settingsGroup) for (const QString &group : d->m_settingsGroup)
settings->beginGroup(group); theSettings->beginGroup(group);
for (BaseAspect *aspect : std::as_const(d->m_items)) for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->readSettings(settings); aspect->readSettings();
for (int i = 0; i != d->m_settingsGroup.size(); ++i) for (int i = 0; i != d->m_settingsGroup.size(); ++i)
settings->endGroup(); theSettings->endGroup();
} }
void AspectContainer::writeSettings(QSettings *settings) const void AspectContainer::writeSettings() const
{ {
QTC_ASSERT(theSettings, return);
for (const QString &group : d->m_settingsGroup) for (const QString &group : d->m_settingsGroup)
settings->beginGroup(group); theSettings->beginGroup(group);
for (BaseAspect *aspect : std::as_const(d->m_items)) for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->writeSettings(settings); aspect->writeSettings();
for (int i = 0; i != d->m_settingsGroup.size(); ++i) for (int i = 0; i != d->m_settingsGroup.size(); ++i)
settings->endGroup(); theSettings->endGroup();
} }
void AspectContainer::setSettingsGroup(const QString &groupKey) void AspectContainer::setSettingsGroup(const QString &groupKey)

View File

@@ -100,8 +100,8 @@ public:
virtual void addToLayout(Layouting::LayoutItem &parent); virtual void addToLayout(Layouting::LayoutItem &parent);
virtual void readSettings(const QSettings *settings); virtual void readSettings();
virtual void writeSettings(QSettings *settings) const; virtual void writeSettings() const;
using SavedValueTransformation = std::function<QVariant(const QVariant &)>; using SavedValueTransformation = std::function<QVariant(const QVariant &)>;
void setFromSettingsTransformation(const SavedValueTransformation &transform); void setFromSettingsTransformation(const SavedValueTransformation &transform);
@@ -159,6 +159,9 @@ public:
Data::Ptr extractData() const; Data::Ptr extractData() const;
static void setGlobalSettings(QSettings *settings);
static QSettings *settings();
signals: signals:
void changed(); void changed();
void volatileValueChanged(); void volatileValueChanged();
@@ -713,8 +716,8 @@ public:
void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const; void toMap(QVariantMap &map) const;
void readSettings(QSettings *settings); void readSettings();
void writeSettings(QSettings *settings) const; void writeSettings() const;
void setSettingsGroup(const QString &groupKey); void setSettingsGroup(const QString &groupKey);
void setSettingsGroups(const QString &groupKey, const QString &subGroupKey); void setSettingsGroups(const QString &groupKey, const QString &subGroupKey);

View File

@@ -30,7 +30,6 @@
#include <coreplugin/actionmanager/command.h> #include <coreplugin/actionmanager/command.h>
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <coreplugin/icontext.h> #include <coreplugin/icontext.h>
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h> #include <coreplugin/messagemanager.h>
#include <cplusplus/CppDocument.h> #include <cplusplus/CppDocument.h>
@@ -138,7 +137,7 @@ AutotestPluginPrivate::AutotestPluginPrivate()
m_frameworkManager.registerTestTool(new CTestTool); m_frameworkManager.registerTestTool(new CTestTool);
m_frameworkManager.synchronizeSettings(ICore::settings()); m_frameworkManager.synchronizeSettings();
m_resultsPane = TestResultsPane::instance(); m_resultsPane = TestResultsPane::instance();
auto panelFactory = new ProjectExplorer::ProjectPanelFactory(); auto panelFactory = new ProjectExplorer::ProjectPanelFactory();

View File

@@ -9,8 +9,6 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QSettings>
using namespace Utils; using namespace Utils;
namespace Autotest { namespace Autotest {
@@ -95,16 +93,16 @@ ITestTool *TestFrameworkManager::testToolForBuildSystemId(Id buildSystemId)
}); });
} }
void TestFrameworkManager::synchronizeSettings(QSettings *s) void TestFrameworkManager::synchronizeSettings()
{ {
Internal::TestSettings::instance()->fromSettings(s); Internal::TestSettings::instance()->fromSettings();
for (ITestFramework *framework : std::as_const(m_registeredFrameworks)) { for (ITestFramework *framework : std::as_const(m_registeredFrameworks)) {
if (ITestSettings *fSettings = framework->testSettings()) if (ITestSettings *fSettings = framework->testSettings())
fSettings->readSettings(s); fSettings->readSettings();
} }
for (ITestTool *testTool : std::as_const(m_registeredTestTools)) { for (ITestTool *testTool : std::as_const(m_registeredTestTools)) {
if (ITestSettings *tSettings = testTool->testSettings()) if (ITestSettings *tSettings = testTool->testSettings())
tSettings->readSettings(s); tSettings->readSettings();
} }
} }

View File

@@ -5,10 +5,6 @@
#include "itestframework.h" #include "itestframework.h"
QT_BEGIN_NAMESPACE
class QSettings;
QT_END_NAMESPACE
namespace Autotest { namespace Autotest {
namespace Internal { namespace Internal {
class TestSettings; class TestSettings;
@@ -23,7 +19,7 @@ public:
bool registerTestFramework(ITestFramework *framework); bool registerTestFramework(ITestFramework *framework);
bool registerTestTool(ITestTool *testTool); bool registerTestTool(ITestTool *testTool);
void synchronizeSettings(QSettings *s); void synchronizeSettings();
static ITestFramework *frameworkForId(Utils::Id frameworkId); static ITestFramework *frameworkForId(Utils::Id frameworkId);
static ITestTool *testToolForId(Utils::Id testToolId); static ITestTool *testToolForId(Utils::Id testToolId);

View File

@@ -108,10 +108,11 @@ TestSettings::TestSettings()
runAfterBuild.addOption(Tr::tr("Selected")); runAfterBuild.addOption(Tr::tr("Selected"));
} }
void TestSettings::toSettings(QSettings *s) const void TestSettings::toSettings() const
{ {
AspectContainer::writeSettings(s); AspectContainer::writeSettings();
QSettings *s = Utils::BaseAspect::settings();
s->beginGroup(Constants::SETTINGSGROUP); s->beginGroup(Constants::SETTINGSGROUP);
// store frameworks and their current active and grouping state // store frameworks and their current active and grouping state
@@ -126,10 +127,11 @@ void TestSettings::toSettings(QSettings *s) const
s->endGroup(); s->endGroup();
} }
void TestSettings::fromSettings(QSettings *s) void TestSettings::fromSettings()
{ {
AspectContainer::readSettings(s); AspectContainer::readSettings();
QSettings *s = Utils::BaseAspect::settings();
s->beginGroup(Constants::SETTINGSGROUP); s->beginGroup(Constants::SETTINGSGROUP);
// try to get settings for registered frameworks // try to get settings for registered frameworks

View File

@@ -29,8 +29,8 @@ public:
static TestSettings *instance(); static TestSettings *instance();
void toSettings(QSettings *s) const; void toSettings() const;
void fromSettings(QSettings *s); void fromSettings();
Utils::IntegerAspect scanThreadLimit{this}; Utils::IntegerAspect scanThreadLimit{this};
Utils::IntegerAspect timeout{this}; Utils::IntegerAspect timeout{this};

View File

@@ -10,7 +10,6 @@
#include "testsettings.h" #include "testsettings.h"
#include "testtreemodel.h" #include "testtreemodel.h"
#include <coreplugin/icore.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/id.h> #include <utils/id.h>
#include <utils/infolabel.h> #include <utils/infolabel.h>
@@ -137,7 +136,7 @@ TestSettingsWidget::TestSettingsWidget()
testSettings(s); testSettings(s);
testToolsSettings(s); testToolsSettings(s);
s.toSettings(Core::ICore::settings()); s.toSettings();
for (ITestFramework *framework : TestFrameworkManager::registeredFrameworks()) { for (ITestFramework *framework : TestFrameworkManager::registeredFrameworks()) {
framework->setActive(s.frameworks.value(framework->id(), false)); framework->setActive(s.frameworks.value(framework->id(), false));

View File

@@ -117,7 +117,7 @@ bool AxivionPlugin::initialize(const QStringList &arguments, QString *errorMessa
Q_UNUSED(errorMessage) Q_UNUSED(errorMessage)
dd = new AxivionPluginPrivate; dd = new AxivionPluginPrivate;
dd->m_axivionSettings.fromSettings(Core::ICore::settings()); dd->m_axivionSettings.fromSettings();
auto panelFactory = new ProjectExplorer::ProjectPanelFactory; auto panelFactory = new ProjectExplorer::ProjectPanelFactory;
panelFactory->setPriority(250); panelFactory->setPriority(250);

View File

@@ -5,6 +5,8 @@
#include "axiviontr.h" #include "axiviontr.h"
#include <coreplugin/icore.h>
#include <utils/filepath.h> #include <utils/filepath.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
@@ -81,9 +83,9 @@ AxivionSettings::AxivionSettings()
curl.setExpectedKind(Utils::PathChooser::ExistingCommand); curl.setExpectedKind(Utils::PathChooser::ExistingCommand);
} }
static Utils::FilePath tokensFilePath(const QSettings *s) static Utils::FilePath tokensFilePath()
{ {
return Utils::FilePath::fromString(s->fileName()).parentDir() return Utils::FilePath::fromString(Core::ICore::settings()->fileName()).parentDir()
.pathAppended("qtcreator/axivion.json"); .pathAppended("qtcreator/axivion.json");
} }
@@ -109,16 +111,16 @@ static AxivionServer readTokenFile(const Utils::FilePath &filePath)
return AxivionServer::fromJson(doc.object()); return AxivionServer::fromJson(doc.object());
} }
void AxivionSettings::toSettings(QSettings *s) const void AxivionSettings::toSettings() const
{ {
writeTokenFile(tokensFilePath(s), server); writeTokenFile(tokensFilePath(), server);
Utils::AspectContainer::writeSettings(s); Utils::AspectContainer::writeSettings();
} }
void AxivionSettings::fromSettings(QSettings *s) void AxivionSettings::fromSettings()
{ {
Utils::AspectContainer::readSettings(s); Utils::AspectContainer::readSettings();
server = readTokenFile(tokensFilePath(s)); server = readTokenFile(tokensFilePath());
if (curl().isEmpty() || !curl().exists()) { if (curl().isEmpty() || !curl().exists()) {
const QString curlPath = QStandardPaths::findExecutable( const QString curlPath = QStandardPaths::findExecutable(

View File

@@ -10,7 +10,6 @@
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QJsonObject; class QJsonObject;
class QSettings;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Axivion::Internal { namespace Axivion::Internal {
@@ -41,8 +40,8 @@ class AxivionSettings : public Utils::AspectContainer
{ {
public: public:
AxivionSettings(); AxivionSettings();
void toSettings(QSettings *s) const; void toSettings() const;
void fromSettings(QSettings *s); void fromSettings();
AxivionServer server; // shall we have more than one? AxivionServer server; // shall we have more than one?
Utils::FilePathAspect curl{this}; Utils::FilePathAspect curl{this};

View File

@@ -7,7 +7,6 @@
#include "axivionsettings.h" #include "axivionsettings.h"
#include "axiviontr.h" #include "axiviontr.h"
#include <coreplugin/icore.h>
#include <utils/aspects.h> #include <utils/aspects.h>
#include <utils/id.h> #include <utils/id.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
@@ -170,7 +169,7 @@ AxivionSettingsWidget::AxivionSettingsWidget(AxivionSettings *settings)
void AxivionSettingsWidget::apply() void AxivionSettingsWidget::apply()
{ {
m_settings->server = m_dashboardDisplay->dashboardServer(); m_settings->server = m_dashboardDisplay->dashboardServer();
m_settings->toSettings(Core::ICore::settings()); m_settings->toSettings();
emit AxivionPlugin::instance()->settingsChanged(); emit AxivionPlugin::instance()->settingsChanged();
} }

View File

@@ -228,9 +228,7 @@ QString AbstractSettings::documentation(const QString &option) const
void AbstractSettings::save() void AbstractSettings::save()
{ {
// Save settings, except styles // Save settings, except styles
QSettings *s = Core::ICore::settings(); AspectContainer::writeSettings();
AspectContainer::writeSettings(s);
// Save styles // Save styles
if (m_stylesToRemove.isEmpty() && m_styles.isEmpty()) if (m_stylesToRemove.isEmpty() && m_styles.isEmpty())
@@ -287,8 +285,7 @@ void AbstractSettings::createDocumentationFile() const
void AbstractSettings::read() void AbstractSettings::read()
{ {
// Read settings, except styles // Read settings, except styles
QSettings *s = Core::ICore::settings(); AspectContainer::readSettings();
AspectContainer::readSettings(s);
m_styles.clear(); m_styles.clear();
m_changedStyles.clear(); m_changedStyles.clear();

View File

@@ -598,7 +598,7 @@ void CMakeBuildSettingsWidget::reconfigureWithInitialParameters()
QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes | QMessageBox::No,
QMessageBox::Yes); QMessageBox::Yes);
settings->writeSettings(Core::ICore::settings()); settings->writeSettings();
if (reply != QMessageBox::Yes) { if (reply != QMessageBox::Yes) {
return; return;

View File

@@ -146,7 +146,7 @@ void CMakeToolManager::restoreCMakeTools()
if (settings->autorunCMake.value() == settings->autorunCMake.defaultValue()) { if (settings->autorunCMake.value() == settings->autorunCMake.defaultValue()) {
CMakeTool *cmake = defaultCMakeTool(); CMakeTool *cmake = defaultCMakeTool();
settings->autorunCMake.setValue(cmake ? cmake->isAutoRun() : true); settings->autorunCMake.setValue(cmake ? cmake->isAutoRun() : true);
settings->writeSettings(Core::ICore::settings()); settings->writeSettings();
} }
} }

View File

@@ -3,8 +3,6 @@
#include "conansettings.h" #include "conansettings.h"
#include <coreplugin/icore.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
using namespace Utils; using namespace Utils;
@@ -26,7 +24,7 @@ ConanSettings::ConanSettings()
conanFilePath.setExpectedKind(PathChooser::ExistingCommand); conanFilePath.setExpectedKind(PathChooser::ExistingCommand);
conanFilePath.setDefaultValue(FilePath::fromString(HostOsInfo::withExecutableSuffix("conan"))); conanFilePath.setDefaultValue(FilePath::fromString(HostOsInfo::withExecutableSuffix("conan")));
readSettings(Core::ICore::settings()); readSettings();
} }
} // Conan::Internal } // Conan::Internal

View File

@@ -8,8 +8,6 @@
#include "copilotsettings.h" #include "copilotsettings.h"
#include "copilottr.h" #include "copilottr.h"
#include <coreplugin/icore.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
#include <utils/pathchooser.h> #include <utils/pathchooser.h>
@@ -95,7 +93,7 @@ public:
setOnApply([] { setOnApply([] {
CopilotSettings::instance().apply(); CopilotSettings::instance().apply();
CopilotSettings::instance().writeSettings(Core::ICore::settings()); CopilotSettings::instance().writeSettings();
}); });
} }
}; };

View File

@@ -14,7 +14,6 @@
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/icore.h>
#include <coreplugin/statusbarmanager.h> #include <coreplugin/statusbarmanager.h>
#include <languageclient/languageclientmanager.h> #include <languageclient/languageclientmanager.h>
@@ -58,7 +57,7 @@ void cycleSuggestion(TextEditor::TextEditorWidget *editor, Direction direction)
void CopilotPlugin::initialize() void CopilotPlugin::initialize()
{ {
CopilotSettings::instance().readSettings(ICore::settings()); CopilotSettings::instance().readSettings();
restartClient(); restartClient();

View File

@@ -6,8 +6,6 @@
#include "ioptionspage.h" #include "ioptionspage.h"
#include <coreplugin/icore.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/aspects.h> #include <utils/aspects.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
@@ -167,7 +165,7 @@ void IOptionsPage::apply()
AspectContainer *container = m_settingsProvider(); AspectContainer *container = m_settingsProvider();
if (container->isDirty()) { if (container->isDirty()) {
container->apply(); container->apply();
container->writeSettings(ICore::settings()); container->writeSettings();
} }
} }
} }
@@ -323,9 +321,4 @@ PagedSettings::PagedSettings()
setAutoApply(false); setAutoApply(false);
} }
void PagedSettings::readSettings()
{
return AspectContainer::readSettings(Core::ICore::settings());
}
} // Core } // Core

View File

@@ -133,9 +133,6 @@ class CORE_EXPORT PagedSettings : public Utils::AspectContainer, public IOptions
{ {
public: public:
PagedSettings(); PagedSettings();
using AspectContainer::readSettings; // FIXME: Remove.
void readSettings(); // Intentionally hides AspectContainer::readSettings()
}; };
} // namespace Core } // namespace Core

View File

@@ -132,7 +132,7 @@ CodePasterPluginPrivate::CodePasterPluginPrivate()
} }
// Create the settings Page // Create the settings Page
m_settings.readSettings(ICore::settings()); m_settings.readSettings();
connect(&m_urlOpen, &Protocol::fetchDone, this, &CodePasterPluginPrivate::finishFetch); connect(&m_urlOpen, &Protocol::fetchDone, this, &CodePasterPluginPrivate::finishFetch);
@@ -251,7 +251,7 @@ void CodePasterPluginPrivate::post(QString data, const QString &mimeType)
// Save new protocol in case user changed it. // Save new protocol in case user changed it.
if (dialogResult == QDialog::Accepted && m_settings.protocols.value() != view.protocol()) { if (dialogResult == QDialog::Accepted && m_settings.protocols.value() != view.protocol()) {
m_settings.protocols.setValue(view.protocol()); m_settings.protocols.setValue(view.protocol());
m_settings.writeSettings(ICore::settings()); m_settings.writeSettings();
} }
} }
@@ -282,7 +282,7 @@ void CodePasterPluginPrivate::fetch()
// Save new protocol in case user changed it. // Save new protocol in case user changed it.
if (m_settings.protocols.value() != dialog.protocol()) { if (m_settings.protocols.value() != dialog.protocol()) {
m_settings.protocols.setValue(dialog.protocol()); m_settings.protocols.setValue(dialog.protocol());
m_settings.writeSettings(ICore::settings()); m_settings.writeSettings();
} }
const QString pasteID = dialog.pasteId(); const QString pasteID = dialog.pasteId();

View File

@@ -10,8 +10,6 @@
#include <debugger/debuggertr.h> #include <debugger/debuggertr.h>
#include <debugger/shared/cdbsymbolpathlisteditor.h> #include <debugger/shared/cdbsymbolpathlisteditor.h>
#include <coreplugin/icore.h>
#include <utils/aspects.h> #include <utils/aspects.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
@@ -215,7 +213,8 @@ CdbOptionsPageWidget::CdbOptionsPageWidget()
void CdbOptionsPageWidget::apply() void CdbOptionsPageWidget::apply()
{ {
m_group.apply(); m_group.writeSettings(Core::ICore::settings()); m_group.apply();
m_group.writeSettings();
debuggerSettings()->cdbBreakEvents.setValue(m_breakEventWidget->breakEvents()); debuggerSettings()->cdbBreakEvents.setValue(m_breakEventWidget->breakEvents());
} }
@@ -269,7 +268,7 @@ void CdbPathsPageWidget::apply()
{ {
debuggerSettings()->cdbSymbolPaths.setValue(m_symbolPaths->pathList()); debuggerSettings()->cdbSymbolPaths.setValue(m_symbolPaths->pathList());
debuggerSettings()->cdbSourcePaths.setValue(m_sourcePaths->pathList()); debuggerSettings()->cdbSourcePaths.setValue(m_sourcePaths->pathList());
m_group.writeSettings(Core::ICore::settings()); m_group.writeSettings();
} }
void CdbPathsPageWidget::finish() void CdbPathsPageWidget::finish()

View File

@@ -7,8 +7,6 @@
#include "debuggerinternalconstants.h" #include "debuggerinternalconstants.h"
#include "debuggertr.h" #include "debuggertr.h"
#include <coreplugin/icore.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
using namespace Core; using namespace Core;
@@ -37,7 +35,7 @@ public:
if (originalPostMortem != currentPostMortem) if (originalPostMortem != currentPostMortem)
s.registerForPostMortem->setValue(currentPostMortem); s.registerForPostMortem->setValue(currentPostMortem);
s.page1.apply(); s.page1.apply();
s.page1.writeSettings(ICore::settings()); s.page1.writeSettings();
}); });
setOnFinish([&s] { s.page1.finish(); }); setOnFinish([&s] { s.page1.finish(); });
@@ -116,7 +114,7 @@ public:
LocalsAndExpressionsOptionsPageWidget() LocalsAndExpressionsOptionsPageWidget()
{ {
DebuggerSettings &s = *debuggerSettings(); DebuggerSettings &s = *debuggerSettings();
setOnApply([&s] { s.page4.apply(); s.page4.writeSettings(ICore::settings()); }); setOnApply([&s] { s.page4.apply(); s.page4.writeSettings(); });
setOnFinish([&s] { s.page4.finish(); }); setOnFinish([&s] { s.page4.finish(); });
auto label = new QLabel; //(useHelperGroup); auto label = new QLabel; //(useHelperGroup);

View File

@@ -202,10 +202,9 @@ bool Console::canNavigate() const
void Console::readSettings() void Console::readSettings()
{ {
QSettings *settings = Core::ICore::settings(); m_showDebug.readSettings();
m_showDebug.readSettings(settings); m_showWarning.readSettings();
m_showWarning.readSettings(settings); m_showError.readSettings();
m_showError.readSettings(settings);
} }
void Console::setContext(const QString &context) void Console::setContext(const QString &context)
@@ -215,10 +214,9 @@ void Console::setContext(const QString &context)
void Console::writeSettings() const void Console::writeSettings() const
{ {
QSettings *settings = Core::ICore::settings(); m_showDebug.writeSettings();
m_showDebug.writeSettings(settings); m_showWarning.writeSettings();
m_showWarning.writeSettings(settings); m_showError.writeSettings();
m_showError.writeSettings(settings);
} }
void Console::setScriptEvaluator(const ScriptEvaluator &evaluator) void Console::setScriptEvaluator(const ScriptEvaluator &evaluator)

View File

@@ -13,7 +13,6 @@
#endif #endif
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -471,14 +470,14 @@ DebuggerSettings::~DebuggerSettings()
void DebuggerSettings::readSettings() void DebuggerSettings::readSettings()
{ {
all.readSettings(Core::ICore::settings()); all.readSettings();
GdbSettings::readSettings(Core::ICore::settings()); GdbSettings::readSettings();
} }
void DebuggerSettings::writeSettings() const void DebuggerSettings::writeSettings() const
{ {
all.writeSettings(Core::ICore::settings()); all.writeSettings();
GdbSettings::writeSettings(Core::ICore::settings()); GdbSettings::writeSettings();
} }
QString DebuggerSettings::dump() QString DebuggerSettings::dump()

View File

@@ -32,8 +32,8 @@ public:
void addToLayout(Layouting::LayoutItem &parent) override; void addToLayout(Layouting::LayoutItem &parent) override;
void readSettings(const QSettings *settings) override; void readSettings() override;
void writeSettings(QSettings *settings) const override; void writeSettings() const override;
private: private:
void guiToInternal() override; void guiToInternal() override;

View File

@@ -486,9 +486,10 @@ const char sourcePathMappingArrayNameC[] = "SourcePathMappings";
const char sourcePathMappingSourceKeyC[] = "Source"; const char sourcePathMappingSourceKeyC[] = "Source";
const char sourcePathMappingTargetKeyC[] = "Target"; const char sourcePathMappingTargetKeyC[] = "Target";
void SourcePathMapAspect::writeSettings(QSettings *s) const void SourcePathMapAspect::writeSettings() const
{ {
const SourcePathMap sourcePathMap = value(); const SourcePathMap sourcePathMap = value();
QSettings *s = settings();
s->beginWriteArray(sourcePathMappingArrayNameC); s->beginWriteArray(sourcePathMappingArrayNameC);
if (!sourcePathMap.isEmpty()) { if (!sourcePathMap.isEmpty()) {
const QString sourcePathMappingSourceKey(sourcePathMappingSourceKeyC); const QString sourcePathMappingSourceKey(sourcePathMappingSourceKeyC);
@@ -505,10 +506,9 @@ void SourcePathMapAspect::writeSettings(QSettings *s) const
s->endArray(); s->endArray();
} }
void SourcePathMapAspect::readSettings(const QSettings *settings) void SourcePathMapAspect::readSettings()
{ {
// Eeks. But legitimate, this operates on ICore::settings(); QSettings *s = settings();
QSettings *s = const_cast<QSettings *>(settings);
SourcePathMap sourcePathMap; SourcePathMap sourcePathMap;
if (const int count = s->beginReadArray(sourcePathMappingArrayNameC)) { if (const int count = s->beginReadArray(sourcePathMappingArrayNameC)) {
const QString sourcePathMappingSourceKey(sourcePathMappingSourceKeyC); const QString sourcePathMappingSourceKey(sourcePathMappingSourceKeyC);

View File

@@ -49,7 +49,7 @@ RegisterPostMortemAction::RegisterPostMortemAction()
connect(this, &BaseAspect::changed, this, [this] { registerNow(value()); }); connect(this, &BaseAspect::changed, this, [this] { registerNow(value()); });
} }
void RegisterPostMortemAction::readSettings(const QSettings *) void RegisterPostMortemAction::readSettings()
{ {
Q_UNUSED(debuggerRegistryValueNameC) // avoid warning from MinGW Q_UNUSED(debuggerRegistryValueNameC) // avoid warning from MinGW

View File

@@ -12,8 +12,8 @@ class RegisterPostMortemAction : public Utils::BoolAspect
{ {
public: public:
RegisterPostMortemAction(); RegisterPostMortemAction();
void readSettings(const QSettings *settings = nullptr) override; void readSettings() override;
void writeSettings(QSettings *) const override {} void writeSettings() const override {}
private: private:
void registerNow(bool value); void registerNow(bool value);

View File

@@ -379,7 +379,7 @@ PerforcePluginPrivate::PerforcePluginPrivate()
dd = this; dd = this;
m_settings.readSettings(ICore::settings()); m_settings.readSettings();
const QString prefix = QLatin1String("p4"); const QString prefix = QLatin1String("p4");
m_commandLocator = new CommandLocator("Perforce", prefix, prefix, this); m_commandLocator = new CommandLocator("Perforce", prefix, prefix, this);
@@ -1678,7 +1678,7 @@ void PerforcePluginPrivate::setTopLevel(const FilePath &topLevel)
void PerforcePluginPrivate::applySettings() void PerforcePluginPrivate::applySettings()
{ {
m_settings.writeSettings(ICore::settings()); m_settings.writeSettings();
m_managedDirectoryCache.clear(); m_managedDirectoryCache.clear();
getTopLevel(); getTopLevel();
emit configurationChanged(); emit configurationChanged();

View File

@@ -1681,7 +1681,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, defaultSettings.lowBuildPriority) = s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, defaultSettings.lowBuildPriority)
.toBool(); .toBool();
dd->m_buildPropertiesSettings.readSettings(s); dd->m_buildPropertiesSettings.readSettings();
const int customParserCount = s->value(Constants::CUSTOM_PARSER_COUNT_KEY).toInt(); const int customParserCount = s->value(Constants::CUSTOM_PARSER_COUNT_KEY).toInt();
for (int i = 0; i < customParserCount; ++i) { for (int i = 0; i < customParserCount; ++i) {
@@ -2255,7 +2255,7 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
int(dd->m_projectExplorerSettings.stopBeforeBuild), int(dd->m_projectExplorerSettings.stopBeforeBuild),
int(defaultSettings.stopBeforeBuild)); int(defaultSettings.stopBeforeBuild));
dd->m_buildPropertiesSettings.writeSettings(s); dd->m_buildPropertiesSettings.writeSettings();
s->setValueWithDefault(Constants::CUSTOM_PARSER_COUNT_KEY, int(dd->m_customParsers.count()), 0); s->setValueWithDefault(Constants::CUSTOM_PARSER_COUNT_KEY, int(dd->m_customParsers.count()), 0);
for (int i = 0; i < dd->m_customParsers.count(); ++i) { for (int i = 0; i < dd->m_customParsers.count(); ++i) {

View File

@@ -5,7 +5,6 @@
#include "qmakeprojectmanagertr.h" #include "qmakeprojectmanagertr.h"
#include <coreplugin/dialogs/ioptionspage.h> #include <coreplugin/dialogs/ioptionspage.h>
#include <coreplugin/icore.h>
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
@@ -59,7 +58,7 @@ QmakeSettings::QmakeSettings()
}; };
}); });
readSettings(Core::ICore::settings()); readSettings();
} }
class QmakeSettingsPage : public Core::IOptionsPage class QmakeSettingsPage : public Core::IOptionsPage

View File

@@ -6,8 +6,6 @@
#include "qmlprofilersettings.h" #include "qmlprofilersettings.h"
#include "qmlprofilertr.h" #include "qmlprofilertr.h"
#include <coreplugin/icore.h>
#include <debugger/analyzer/analyzericons.h> #include <debugger/analyzer/analyzericons.h>
#include <debugger/debuggertr.h> #include <debugger/debuggertr.h>
@@ -76,12 +74,12 @@ QmlProfilerSettings::QmlProfilerSettings()
"the program.")); "the program."));
// Read stored values // Read stored values
readSettings(Core::ICore::settings()); readSettings();
} }
void QmlProfilerSettings::writeGlobalSettings() const void QmlProfilerSettings::writeGlobalSettings() const
{ {
writeSettings(Core::ICore::settings()); writeSettings();
} }
// QmlProfilerOptionsPage // QmlProfilerOptionsPage

View File

@@ -94,7 +94,7 @@ TerminalPane::TerminalPane(QObject *parent)
connect(m_escSettingButton, &QToolButton::toggled, this, [this, updateEscButton] { connect(m_escSettingButton, &QToolButton::toggled, this, [this, updateEscButton] {
TerminalSettings::instance().sendEscapeToTerminal.setValue(m_escSettingButton->isChecked()); TerminalSettings::instance().sendEscapeToTerminal.setValue(m_escSettingButton->isChecked());
TerminalSettings::instance().writeSettings(ICore::settings()); TerminalSettings::instance().writeSettings();
updateEscButton(); updateEscButton();
}); });

View File

@@ -66,7 +66,7 @@ VcpkgSettings::VcpkgSettings()
// clang-format on // clang-format on
}); });
readSettings(Core::ICore::settings()); readSettings();
} }
class VcpkgSettingsPage : public Core::IOptionsPage class VcpkgSettingsPage : public Core::IOptionsPage

View File

@@ -246,7 +246,7 @@ VcsBaseEditorWidget *VcsBaseClientImpl::createVcsEditor(Id kind, QString title,
void VcsBaseClientImpl::saveSettings() void VcsBaseClientImpl::saveSettings()
{ {
m_baseSettings->writeSettings(ICore::settings()); m_baseSettings->writeSettings();
} }
VcsBaseClient::VcsBaseClient(VcsBaseSettings *baseSettings) VcsBaseClient::VcsBaseClient(VcsBaseSettings *baseSettings)