diff options
author | Nikolai Kosjar <[email protected]> | 2018-01-22 16:01:09 +0100 |
---|---|---|
committer | Nikolai Kosjar <[email protected]> | 2018-01-29 08:13:57 +0000 |
commit | 384128662e21c398858fa38126d91599006d8424 (patch) | |
tree | 1b7bc68f5e96370fb1f5202a7e635362d6e4871e /src/plugins/clangcodemodel/clangprojectsettingswidget.cpp | |
parent | 49ba25e1838284038f5c37b5f9a1cb411cb4ab32 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/plugins/clangcodemodel/clangprojectsettingswidget.cpp')
-rw-r--r-- | src/plugins/clangcodemodel/clangprojectsettingswidget.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp b/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp index d8148a158da..57461779bcd 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(); |