Clang/ClangTools: Separate custom diagnostic configs

Add a separate pool of custom diagnostic configs for the
ClangTools plugin. That is, the diagnostic configs in

  Menu: Tools > C++ > Code Model

are not shared anymore with the configs at

  Menu: Tools > Analyzer > ClangTools

On plugin initialization of ClangTools, move tidy/clazy related configs
to ClangTools.

Change-Id: Id06087a58b53e466a3d7bbac669550c5fbe9899d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-09-25 15:46:15 +02:00
parent d2648db914
commit b895dfa382
35 changed files with 523 additions and 443 deletions

View File

@@ -64,6 +64,17 @@ ClangProjectSettingsWidget::ClangProjectSettingsWidget(ProjectExplorer::Project
connect(m_ui.clangDiagnosticConfigsSelectionWidget,
&ClangDiagnosticConfigsSelectionWidget::currentConfigChanged,
this, &ClangProjectSettingsWidget::onCurrentWarningConfigChanged);
connect(m_ui.clangDiagnosticConfigsSelectionWidget,
&ClangDiagnosticConfigsSelectionWidget::diagnosticConfigsEdited,
this, [this](const ClangDiagnosticConfigs &configs){
QSharedPointer<CppCodeModelSettings> cmSettings = CppTools::codeModelSettings();
const ClangDiagnosticConfigsModel configsModel = CppTools::diagnosticConfigsModel(configs);
if (!configsModel.hasConfigWithId(cmSettings->clangDiagnosticConfigId()))
cmSettings->resetClangDiagnosticConfigId();
cmSettings->setClangCustomDiagnosticConfigs(configs);
cmSettings->toSettings(Core::ICore::settings());
refreshDiagnosticConfigsWidgetFromSettings();
});
connect(m_ui.delayedTemplateParseCheckBox, &QCheckBox::toggled,
this, &ClangProjectSettingsWidget::onDelayedTemplateParseClicked);
@@ -146,7 +157,9 @@ void ClangProjectSettingsWidget::syncOtherWidgetsToComboBox()
void ClangProjectSettingsWidget::refreshDiagnosticConfigsWidgetFromSettings()
{
m_ui.clangDiagnosticConfigsSelectionWidget->refresh(configIdForProject(m_projectSettings));
m_ui.clangDiagnosticConfigsSelectionWidget->refresh(CppTools::diagnosticConfigsModel(),
configIdForProject(m_projectSettings),
/*showTidyClazyUi=*/false);
}
} // namespace Internal