From 9f937d04b1b13a491b273d583bbcaa34a66de56b Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 18 Jan 2024 08:39:46 +0100 Subject: [PATCH] QtSupport: Use setup pattern for QtOutputFormatter Change-Id: Ic570a6503bedc4685d3d7f6222f1edab33fb6bad Reviewed-by: Jarek Kobus --- src/plugins/qnx/qnxrunconfiguration.cpp | 1 + src/plugins/qtsupport/qtoutputformatter.cpp | 23 +++++++++++++++------ src/plugins/qtsupport/qtoutputformatter.h | 8 ++----- src/plugins/qtsupport/qtsupportplugin.cpp | 3 +-- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/plugins/qnx/qnxrunconfiguration.cpp b/src/plugins/qnx/qnxrunconfiguration.cpp index ebab271238d..8b4e5498707 100644 --- a/src/plugins/qnx/qnxrunconfiguration.cpp +++ b/src/plugins/qnx/qnxrunconfiguration.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/src/plugins/qtsupport/qtoutputformatter.cpp b/src/plugins/qtsupport/qtoutputformatter.cpp index 4db23ec2a36..d1dcc59db43 100644 --- a/src/plugins/qtsupport/qtoutputformatter.cpp +++ b/src/plugins/qtsupport/qtoutputformatter.cpp @@ -8,6 +8,8 @@ #include "qttestparser.h" #include + +#include #include #include @@ -218,13 +220,22 @@ void QtOutputLineParser::updateProjectFileList() // QtOutputFormatterFactory -QtOutputFormatterFactory::QtOutputFormatterFactory() +class QtOutputFormatterFactory final : public OutputFormatterFactory { - setFormatterCreator([](Target *t) -> QList { - if (QtKitAspect::qtVersion(t ? t->kit() : nullptr)) - return {new QtTestParser, new QtOutputLineParser(t)}; - return {}; - }); +public: + QtOutputFormatterFactory() + { + setFormatterCreator([](Target *t) -> QList { + if (QtKitAspect::qtVersion(t ? t->kit() : nullptr)) + return {new QtTestParser, new QtOutputLineParser(t)}; + return {}; + }); + } +}; + +void setupQtOutputFormatter() +{ + static QtOutputFormatterFactory theQtOutputFormatterFactory; } } // QtSupport::Internal diff --git a/src/plugins/qtsupport/qtoutputformatter.h b/src/plugins/qtsupport/qtoutputformatter.h index 68d090f98d2..b16c8c7b180 100644 --- a/src/plugins/qtsupport/qtoutputformatter.h +++ b/src/plugins/qtsupport/qtoutputformatter.h @@ -3,7 +3,7 @@ #pragma once -#include +#include // "file" or "qrc", colon, optional '//', '/' and further characters #define QT_QML_URL_REGEXP "(?:file|qrc):(?://)?/.+?" @@ -14,11 +14,7 @@ namespace QtSupport::Internal { -class QtOutputFormatterFactory : public ProjectExplorer::OutputFormatterFactory -{ -public: - QtOutputFormatterFactory(); -}; +void setupQtOutputFormatter(); #ifdef WITH_TESTS QObject *createQtOutputFormatterTest(); diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index 30813692f63..cd815c63e33 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -48,8 +48,6 @@ namespace QtSupport::Internal { class QtSupportPluginPrivate { public: - QtOutputFormatterFactory qtOutputFormatterFactory; - UicGeneratorFactory uicGeneratorFactory; QScxmlcGeneratorFactory qscxmlcGeneratorFactory; @@ -110,6 +108,7 @@ void QtSupportPlugin::initialize() setupEmbeddedLinuxQtVersion(); setupGettingStartedWelcomePage(); setupQtSettingsPage(); + setupQtOutputFormatter(); theProcessRunner() = processRunnerCallback;