forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -76,6 +76,8 @@ ClangProjectSettingsWidget::ClangProjectSettingsWidget(ProjectExplorer::Project
|
|||||||
connect(m_ui.clangSettings,
|
connect(m_ui.clangSettings,
|
||||||
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
this, &ClangProjectSettingsWidget::onClangSettingsChanged);
|
this, &ClangProjectSettingsWidget::onClangSettingsChanged);
|
||||||
|
connect(project, &ProjectExplorer::Project::aboutToSaveSettings,
|
||||||
|
this, &ClangProjectSettingsWidget::onAboutToSaveProjectSettings);
|
||||||
|
|
||||||
m_ui.diagnosticConfigurationGroupBox->layout()->addWidget(m_diagnosticConfigWidget);
|
m_ui.diagnosticConfigurationGroupBox->layout()->addWidget(m_diagnosticConfigWidget);
|
||||||
}
|
}
|
||||||
@@ -86,7 +88,6 @@ void ClangProjectSettingsWidget::onCurrentWarningConfigChanged(const Core::Id &c
|
|||||||
if (m_projectSettings.useGlobalConfig())
|
if (m_projectSettings.useGlobalConfig())
|
||||||
return;
|
return;
|
||||||
m_projectSettings.setWarningConfigId(currentConfigId);
|
m_projectSettings.setWarningConfigId(currentConfigId);
|
||||||
m_projectSettings.store();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangProjectSettingsWidget::onCustomWarningConfigsChanged(
|
void ClangProjectSettingsWidget::onCustomWarningConfigsChanged(
|
||||||
@@ -97,7 +98,6 @@ void ClangProjectSettingsWidget::onCustomWarningConfigsChanged(
|
|||||||
const QSharedPointer<CppTools::CppCodeModelSettings> codeModelSettings
|
const QSharedPointer<CppTools::CppCodeModelSettings> codeModelSettings
|
||||||
= CppTools::codeModelSettings();
|
= CppTools::codeModelSettings();
|
||||||
codeModelSettings->setClangCustomDiagnosticConfigs(customConfigs);
|
codeModelSettings->setClangCustomDiagnosticConfigs(customConfigs);
|
||||||
codeModelSettings->toSettings(Core::ICore::settings());
|
|
||||||
|
|
||||||
connectToCppCodeModelSettingsChanged();
|
connectToCppCodeModelSettingsChanged();
|
||||||
}
|
}
|
||||||
@@ -115,16 +115,19 @@ void ClangProjectSettingsWidget::onDelayedTemplateParseClicked(bool checked)
|
|||||||
options.removeAll(QLatin1String{ClangProjectSettings::NoDelayedTemplateParsing});
|
options.removeAll(QLatin1String{ClangProjectSettings::NoDelayedTemplateParsing});
|
||||||
options.append(extraFlag);
|
options.append(extraFlag);
|
||||||
m_projectSettings.setCommandLineOptions(options);
|
m_projectSettings.setCommandLineOptions(options);
|
||||||
m_projectSettings.store();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangProjectSettingsWidget::onClangSettingsChanged(int index)
|
void ClangProjectSettingsWidget::onClangSettingsChanged(int index)
|
||||||
{
|
{
|
||||||
m_projectSettings.setUseGlobalConfig(index == 0 ? true : false);
|
m_projectSettings.setUseGlobalConfig(index == 0 ? true : false);
|
||||||
m_projectSettings.store();
|
|
||||||
syncOtherWidgetsToComboBox();
|
syncOtherWidgetsToComboBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClangProjectSettingsWidget::onAboutToSaveProjectSettings()
|
||||||
|
{
|
||||||
|
CppTools::codeModelSettings()->toSettings(Core::ICore::settings());
|
||||||
|
}
|
||||||
|
|
||||||
void ClangProjectSettingsWidget::syncOtherWidgetsToComboBox()
|
void ClangProjectSettingsWidget::syncOtherWidgetsToComboBox()
|
||||||
{
|
{
|
||||||
const QStringList options = m_projectSettings.commandLineOptions();
|
const QStringList options = m_projectSettings.commandLineOptions();
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ private:
|
|||||||
void onCustomWarningConfigsChanged(const CppTools::ClangDiagnosticConfigs &customConfigs);
|
void onCustomWarningConfigsChanged(const CppTools::ClangDiagnosticConfigs &customConfigs);
|
||||||
void onDelayedTemplateParseClicked(bool);
|
void onDelayedTemplateParseClicked(bool);
|
||||||
void onClangSettingsChanged(int index);
|
void onClangSettingsChanged(int index);
|
||||||
|
void onAboutToSaveProjectSettings();
|
||||||
void refreshDiagnosticConfigsWidgetFromSettings();
|
void refreshDiagnosticConfigsWidgetFromSettings();
|
||||||
void connectToCppCodeModelSettingsChanged();
|
void connectToCppCodeModelSettingsChanged();
|
||||||
void disconnectFromCppCodeModelSettingsChanged();
|
void disconnectFromCppCodeModelSettingsChanged();
|
||||||
|
|||||||
Reference in New Issue
Block a user