summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-22 16:01:09 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-29 08:13:57 +0000
commit384128662e21c398858fa38126d91599006d8424 (patch)
tree1b7bc68f5e96370fb1f5202a7e635362d6e4871e
parent49ba25e1838284038f5c37b5f9a1cb411cb4ab32 (diff)
downloadqt-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.cpp11
-rw-r--r--src/plugins/clangcodemodel/clangprojectsettingswidget.h1
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();