diff options
author | hjk <hjk@qt.io> | 2024-01-18 09:28:04 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2024-01-18 10:17:53 +0000 |
commit | 6467797af22af1735138ff853ab282d7e79d55cf (patch) | |
tree | 90a3b4785ac60ef0f307919c3744f0beb83c189e /src/plugins/qtsupport/uicgenerator.cpp | |
parent | a4e6d36427bfb316bacd09a4fa4d85d037740658 (diff) |
QtSupport: Use setup pattern for UIC and SCXML extracompilers
Change-Id: I4727333e9716eae41ea41a37f032fb44b383212c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src/plugins/qtsupport/uicgenerator.cpp')
-rw-r--r-- | src/plugins/qtsupport/uicgenerator.cpp | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/plugins/qtsupport/uicgenerator.cpp b/src/plugins/qtsupport/uicgenerator.cpp index 840bc58564..dee12b9f9c 100644 --- a/src/plugins/qtsupport/uicgenerator.cpp +++ b/src/plugins/qtsupport/uicgenerator.cpp @@ -7,6 +7,7 @@ #include "qtkitaspect.h" #include <projectexplorer/buildconfiguration.h> +#include <projectexplorer/extracompiler.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/target.h> @@ -19,7 +20,7 @@ using namespace ProjectExplorer; using namespace Utils; -namespace QtSupport { +namespace QtSupport::Internal { class UicGenerator final : public ProcessExtraCompiler { @@ -32,19 +33,16 @@ public: } protected: - FilePath command() const override; - QStringList arguments() const override { return {"-p"}; } - FileNameToContentsHash handleProcessFinished(Process *process) override; + FilePath command() const final; + QStringList arguments() const final { return {"-p"}; } + FileNameToContentsHash handleProcessFinished(Process *process) final; }; FilePath UicGenerator::command() const { - QtSupport::QtVersion *version = nullptr; - Target *target; - if ((target = project()->activeTarget())) - version = QtSupport::QtKitAspect::qtVersion(target->kit()); - else - version = QtSupport::QtKitAspect::qtVersion(KitManager::defaultKit()); + Target *target = project()->activeTarget(); + Kit *kit = target ? target->kit() : KitManager::defaultKit(); + QtVersion *version = QtKitAspect::qtVersion(kit); if (!version) return {}; @@ -69,21 +67,28 @@ FileNameToContentsHash UicGenerator::handleProcessFinished(Process *process) return result; } -FileType UicGeneratorFactory::sourceType() const -{ - return FileType::Form; -} +// UicGeneratorFactory -QString UicGeneratorFactory::sourceTag() const +class UicGeneratorFactory final : public ExtraCompilerFactory { - return QLatin1String("ui"); -} +public: + UicGeneratorFactory() = default; + + FileType sourceType() const final { return FileType::Form; } + + QString sourceTag() const final { return QLatin1String("ui"); } + + ExtraCompiler *create(const Project *project, + const FilePath &source, + const FilePaths &targets) final + { + return new UicGenerator(project, source, targets, this); + } +}; -ExtraCompiler *UicGeneratorFactory::create(const Project *project, - const FilePath &source, - const FilePaths &targets) +void setupUicGenerator() { - return new UicGenerator(project, source, targets, this); + static UicGeneratorFactory theUicGeneratorFactory; } -} // QtSupport +} // QtSupport::Internal |