ClangTools: Move run settings to projects mode

Make the global run settings available per project in project mode and
thus remove the diagnostic config selection from the
selectable-files-dialog:

 * Extract the classes RunSettings and RunSettingsWidget instead of
   duplicating stuff.
 * Ensure to pick up the old settings
 * Add some convenience buttons/links in projects mode allowing to
   restore the global settings, to open the global settings and to
   navigate (back) to the analyzer mode.

Change-Id: I1b91b6f8e58a87a025774e4643c46e176b2a8885
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-13 10:49:14 +02:00
parent bdea56794f
commit 4750969c2b
24 changed files with 630 additions and 508 deletions

View File

@@ -87,7 +87,8 @@ static CppTools::ClangDiagnosticConfig configFor(const QString &tidyChecks,
config.setIsReadOnly(true);
config.setClangOptions(QStringList{QStringLiteral("-Wno-everything")});
config.setClangTidyMode(CppTools::ClangDiagnosticConfig::TidyMode::ChecksPrefixList);
config.setClangTidyChecks("-*," + tidyChecks);
const QString theTidyChecks = tidyChecks.isEmpty() ? tidyChecks : "-*," + tidyChecks;
config.setClangTidyChecks(theTidyChecks);
config.setClazyChecks(clazyChecks);
return config;
}
@@ -115,7 +116,7 @@ void ClangToolsUnitTests::testProject()
ClangToolsSettings *clangToolsSettings = ClangToolsSettings::instance();
const CppTools::ClangDiagnosticConfigs originalConfigs = cppToolsSettings
->clangCustomDiagnosticConfigs();
const Core::Id originalId = clangToolsSettings->diagnosticConfigId();
const Core::Id originalId = clangToolsSettings->runSettings().diagnosticConfigId();
CppTools::ClangDiagnosticConfigs modifiedConfigs = originalConfigs;
modifiedConfigs.push_back(diagnosticConfig);
@@ -123,12 +124,16 @@ void ClangToolsUnitTests::testProject()
ExecuteOnDestruction executeOnDestruction([=]() {
// Restore configs
cppToolsSettings->setClangCustomDiagnosticConfigs(originalConfigs);
clangToolsSettings->setDiagnosticConfigId(originalId);
RunSettings runSettings = clangToolsSettings->runSettings();
runSettings.setDiagnosticConfigId(originalId);
clangToolsSettings->setRunSettings(runSettings);
clangToolsSettings->writeSettings();
});
cppToolsSettings->setClangCustomDiagnosticConfigs(modifiedConfigs);
clangToolsSettings->setDiagnosticConfigId(diagnosticConfig.id());
RunSettings runSettings = clangToolsSettings->runSettings();
runSettings.setDiagnosticConfigId(diagnosticConfig.id());
clangToolsSettings->setRunSettings(runSettings);
clangToolsSettings->writeSettings();
tool->startTool(ClangTidyClazyTool::FileSelection::AllFiles);