diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-10-01 16:53:01 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-12-03 13:22:28 +0000 |
commit | 3090e744c2cdfc29b95f5fdf71ad2e385bb7d3c2 (patch) | |
tree | ee7044ba5694843bbf2af41fd830f9096bd72141 /src/plugins/cpptools/cppcodemodelsettingspage.cpp | |
parent | 0a15b001dd71d86ecfd06669cfe55bcd20afe305 (diff) | |
download | qt-creator-3090e744c2cdfc29b95f5fdf71ad2e385bb7d3c2.tar.gz |
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 <cristian.adam@qt.io>
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 |