summaryrefslogtreecommitdiff
path: root/src/plugins/clangtools/runsettingswidget.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-10-21 14:59:57 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-03 13:23:13 +0000
commit0d7a30cdfe3f9611ce0653c556cc5a8d673ee061 (patch)
tree0b31979ff544e9e4e95fbb08d5593f9a46f824bf /src/plugins/clangtools/runsettingswidget.cpp
parent9a7f5e08fd170e032c726b55f26908d4fc2a7b96 (diff)
downloadqt-creator-0d7a30cdfe3f9611ce0653c556cc5a8d673ee061.tar.gz
ClangTools: Query the tools for supported checks
...instead of hardcoding them for a particular version of clang-tidy/clazy. While at it, move also the tidy/clazy widgets to ClangTools as this simplifies feeding data to them. Reduce also the built-in configs to a single one using clang-tidy's and clazy's default checks as they look very reasonable and saves us some porting effort. Also, our previous built-in configs were just too numerous. Change-Id: Ib9297acb7810a940b86a23a8695530506a570394 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'src/plugins/clangtools/runsettingswidget.cpp')
-rw-r--r--src/plugins/clangtools/runsettingswidget.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/plugins/clangtools/runsettingswidget.cpp b/src/plugins/clangtools/runsettingswidget.cpp
index 2c02354c0e..336f9d772b 100644
--- a/src/plugins/clangtools/runsettingswidget.cpp
+++ b/src/plugins/clangtools/runsettingswidget.cpp
@@ -24,11 +24,15 @@
****************************************************************************/
#include "runsettingswidget.h"
-
#include "ui_runsettingswidget.h"
#include "clangtoolssettings.h"
#include "clangtoolsutils.h"
+#include "diagnosticconfigswidget.h"
+#include "executableinfo.h"
+#include "settingswidget.h"
+
+#include <cpptools/clangdiagnosticconfigswidget.h>
#include <QThread>
@@ -52,12 +56,39 @@ CppTools::ClangDiagnosticConfigsSelectionWidget *RunSettingsWidget::diagnosticSe
return m_ui->diagnosticWidget;
}
+static CppTools::ClangDiagnosticConfigsWidget *createEditWidget(
+ const CppTools::ClangDiagnosticConfigs &configs, const Core::Id &configToSelect)
+{
+ // Determine executable paths
+ QString clangTidyPath;
+ QString clazyStandalonePath;
+ if (auto settingsWidget = SettingsWidget::instance()) {
+ // Global settings case; executables might not yet applied to settings
+ clangTidyPath = settingsWidget->clangTidyPath();
+ clangTidyPath = clangTidyPath.isEmpty() ? clangTidyFallbackExecutable()
+ : fullPath(clangTidyPath);
+
+ clazyStandalonePath = settingsWidget->clazyStandalonePath();
+ clazyStandalonePath = clazyStandalonePath.isEmpty() ? clazyStandaloneFallbackExecutable()
+ : fullPath(clazyStandalonePath);
+ } else {
+ // "Projects Mode > Clang Tools" case, check settings
+ clangTidyPath = clangTidyExecutable();
+ clazyStandalonePath = clazyStandaloneExecutable();
+ }
+
+ return new DiagnosticConfigsWidget(configs,
+ configToSelect,
+ ClangTidyInfo(clangTidyPath),
+ ClazyStandaloneInfo(clazyStandalonePath));
+}
+
void RunSettingsWidget::fromSettings(const RunSettings &s)
{
disconnect(m_ui->diagnosticWidget, 0, 0, 0);
m_ui->diagnosticWidget->refresh(diagnosticConfigsModel(),
s.diagnosticConfigId(),
- /*showTidyClazyUi=*/true);
+ createEditWidget);
connect(m_ui->diagnosticWidget,
&CppTools::ClangDiagnosticConfigsSelectionWidget::changed,
this,