summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodemodelsettingspage.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-10-01 16:53:01 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-03 13:22:28 +0000
commit3090e744c2cdfc29b95f5fdf71ad2e385bb7d3c2 (patch)
treeee7044ba5694843bbf2af41fd830f9096bd72141 /src/plugins/cpptools/cppcodemodelsettingspage.cpp
parent0a15b001dd71d86ecfd06669cfe55bcd20afe305 (diff)
downloadqt-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.cpp31
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