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

@@ -29,6 +29,7 @@
#include "clangtool.h"
#include "clangtoolsconstants.h"
#include "clangtoolsprojectsettings.h"
#include "clangtoolsutils.h"
#include <coreplugin/icore.h>
@@ -36,6 +37,8 @@
#include <QAbstractTableModel>
#include <cpptools/clangdiagnosticconfigsmodel.h>
namespace ClangTools {
namespace Internal {
@@ -98,6 +101,25 @@ ProjectSettingsWidget::ProjectSettingsWidget(ProjectExplorer::Project *project,
connect(m_ui->runSettingsWidget, &RunSettingsWidget::changed, [this]() {
m_projectSettings->setRunSettings(m_ui->runSettingsWidget->toSettings());
});
connect(m_ui->runSettingsWidget,
&RunSettingsWidget::diagnosticConfigsEdited,
this,
[this](const CppTools::ClangDiagnosticConfigs &configs) {
const CppTools::ClangDiagnosticConfigsModel configsModel = diagnosticConfigsModel(
configs);
RunSettings runSettings = m_projectSettings->runSettings();
if (!configsModel.hasConfigWithId(runSettings.diagnosticConfigId())) {
runSettings.resetDiagnosticConfigId();
m_projectSettings->setRunSettings(runSettings);
}
ClangToolsSettings::instance()->setDiagnosticConfigs(configs);
ClangToolsSettings::instance()->writeSettings();
m_ui->runSettingsWidget->fromSettings(runSettings);
});
connect(ClangToolsSettings::instance(), &ClangToolsSettings::changed,
this, [this](){
m_ui->runSettingsWidget->fromSettings(m_projectSettings->runSettings());
});
// Suppressed diagnostics
auto * const model = new SuppressedDiagnosticsModel(this);