diff options
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp')
| -rw-r--r-- | src/plugins/cpptools/cppcodemodelsettingspage.cpp | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index c700899f00..d1717c0de0 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -75,23 +75,6 @@ void CppCodeModelSettingsWidget::setupClangCodeModelWidgets() m_settings->clangDiagnosticConfigId(), /*showTidyClazyUi=*/false); - connect(m_ui->clangDiagnosticConfigsSelectionWidget, - &ClangDiagnosticConfigsSelectionWidget::diagnosticConfigsEdited, - this, - [this](const ClangDiagnosticConfigs &configs) { - const ClangDiagnosticConfigsModel configsModel = diagnosticConfigsModel(configs); - if (!configsModel.hasConfigWithId(m_settings->clangDiagnosticConfigId())) - m_settings->resetClangDiagnosticConfigId(); - m_settings->setClangCustomDiagnosticConfigs(configs); - applyClangCodeModelWidgetsToSettings(); - m_settings->toSettings(Core::ICore::settings()); - - m_ui->clangDiagnosticConfigsSelectionWidget - ->refresh(configsModel, - m_settings->clangDiagnosticConfigId(), - /*showTidyClazyUi=*/false); - }); - const bool isClangActive = CppModelManager::instance()->isClangCodeModelActive(); m_ui->clangCodeModelIsDisabledHint->setVisible(!isClangActive); m_ui->clangCodeModelIsEnabledHint->setVisible(isClangActive); @@ -116,14 +99,24 @@ void CppCodeModelSettingsWidget::setupGeneralWidgets() bool CppCodeModelSettingsWidget::applyClangCodeModelWidgetsToSettings() const { + bool changed = false; + const Core::Id oldConfigId = m_settings->clangDiagnosticConfigId(); const Core::Id currentConfigId = m_ui->clangDiagnosticConfigsSelectionWidget->currentConfigId(); if (oldConfigId != currentConfigId) { m_settings->setClangDiagnosticConfigId(currentConfigId); - return true; + changed = true; + } + + const ClangDiagnosticConfigs oldConfigs = m_settings->clangCustomDiagnosticConfigs(); + const ClangDiagnosticConfigs currentConfigs = m_ui->clangDiagnosticConfigsSelectionWidget + ->customConfigs(); + if (oldConfigs != currentConfigs) { + m_settings->setClangCustomDiagnosticConfigs(currentConfigs); + changed = true; } - return false; + return changed; } bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const |
