From 3090e744c2cdfc29b95f5fdf71ad2e385bb7d3c2 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 1 Oct 2019 16:53:01 +0200 Subject: ClangTools: Polish ClangDiagnosticConfigsWidget * Improve distinction between built-in and custom configs by introducing corresponding parent nodes * Add button to rename a config * Make closing the dialog apply the selected config. * Adapt also the related ClangDiagnosticConfigsSelectionWidget showing a combo box of the diagnostic configs and a "Manage..." button: Remove the combo box and show the current config as the button text. Change-Id: Ic015df37f2532f84bd7da6cd20bfce07799a97b8 Reviewed-by: Cristian Adam --- src/plugins/cpptools/cppcodemodelsettingspage.cpp | 31 +++++++++-------------- 1 file changed, 12 insertions(+), 19 deletions(-) (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp') 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 -- cgit v1.2.1