diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2018-01-22 16:01:09 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2018-01-29 08:13:57 +0000 |
commit | 384128662e21c398858fa38126d91599006d8424 (patch) | |
tree | 1b7bc68f5e96370fb1f5202a7e635362d6e4871e | |
parent | 49ba25e1838284038f5c37b5f9a1cb411cb4ab32 (diff) | |
download | qt-creator-384128662e21c398858fa38126d91599006d8424.tar.gz |
Clang: Avoid storing settings more than needed
There is no need to store on every key stroken when changing the
diagnostic config in the projects mode.
Change-Id: I627c11621b999527c110862365ba5c2a0b1e878b
Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r-- | src/plugins/clangcodemodel/clangprojectsettingswidget.cpp | 11 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/clangprojectsettingswidget.h | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp b/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp index d8148a158d..57461779bc 100644 --- a/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp +++ b/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp @@ -76,6 +76,8 @@ ClangProjectSettingsWidget::ClangProjectSettingsWidget(ProjectExplorer::Project connect(m_ui.clangSettings, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &ClangProjectSettingsWidget::onClangSettingsChanged); + connect(project, &ProjectExplorer::Project::aboutToSaveSettings, + this, &ClangProjectSettingsWidget::onAboutToSaveProjectSettings); m_ui.diagnosticConfigurationGroupBox->layout()->addWidget(m_diagnosticConfigWidget); } @@ -86,7 +88,6 @@ void ClangProjectSettingsWidget::onCurrentWarningConfigChanged(const Core::Id &c if (m_projectSettings.useGlobalConfig()) return; m_projectSettings.setWarningConfigId(currentConfigId); - m_projectSettings.store(); } void ClangProjectSettingsWidget::onCustomWarningConfigsChanged( @@ -97,7 +98,6 @@ void ClangProjectSettingsWidget::onCustomWarningConfigsChanged( const QSharedPointer<CppTools::CppCodeModelSettings> codeModelSettings = CppTools::codeModelSettings(); codeModelSettings->setClangCustomDiagnosticConfigs(customConfigs); - codeModelSettings->toSettings(Core::ICore::settings()); connectToCppCodeModelSettingsChanged(); } @@ -115,16 +115,19 @@ void ClangProjectSettingsWidget::onDelayedTemplateParseClicked(bool checked) options.removeAll(QLatin1String{ClangProjectSettings::NoDelayedTemplateParsing}); options.append(extraFlag); m_projectSettings.setCommandLineOptions(options); - m_projectSettings.store(); } void ClangProjectSettingsWidget::onClangSettingsChanged(int index) { m_projectSettings.setUseGlobalConfig(index == 0 ? true : false); - m_projectSettings.store(); syncOtherWidgetsToComboBox(); } +void ClangProjectSettingsWidget::onAboutToSaveProjectSettings() +{ + CppTools::codeModelSettings()->toSettings(Core::ICore::settings()); +} + void ClangProjectSettingsWidget::syncOtherWidgetsToComboBox() { const QStringList options = m_projectSettings.commandLineOptions(); diff --git a/src/plugins/clangcodemodel/clangprojectsettingswidget.h b/src/plugins/clangcodemodel/clangprojectsettingswidget.h index d27be6341e..6c2f529f43 100644 --- a/src/plugins/clangcodemodel/clangprojectsettingswidget.h +++ b/src/plugins/clangcodemodel/clangprojectsettingswidget.h @@ -51,6 +51,7 @@ private: void onCustomWarningConfigsChanged(const CppTools::ClangDiagnosticConfigs &customConfigs); void onDelayedTemplateParseClicked(bool); void onClangSettingsChanged(int index); + void onAboutToSaveProjectSettings(); void refreshDiagnosticConfigsWidgetFromSettings(); void connectToCppCodeModelSettingsChanged(); void disconnectFromCppCodeModelSettingsChanged(); |