From f52cf6b56432931f19694273b51a461efd64d26b Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 18 Jan 2024 10:23:11 +0100 Subject: [PATCH] QmlProjectManager: Use setup pattern for QmlProjectRunConfiguration Change-Id: Ib69a09c65a4755312663286fddbd891c4f7c49ce Reviewed-by: Jarek Kobus --- .../qmlprojectmanager/qmlprojectplugin.cpp | 3 ++- .../qmlprojectrunconfiguration.cpp | 21 ++++++++++++++----- .../qmlprojectrunconfiguration.h | 14 +++---------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp index 021c0e2a730..d2f4a7e6045 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp @@ -102,7 +102,6 @@ static void clearAlwaysOpenWithMode() class QmlProjectPluginPrivate { public: - QmlProjectRunConfigurationFactory runConfigFactory; QPointer lastMessageBox; QdsLandingPage *landingPage = nullptr; QdsLandingPageWidget *landingPageWidget = nullptr; @@ -274,6 +273,8 @@ private: void QmlProjectPlugin::initialize() { + setupQmlProjectRunConfiguration(); + d = new QmlProjectPluginPrivate; if (!qmlDesignerEnabled()) { diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 228f3c2004c..bbf8c76a2ee 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -1,10 +1,10 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "qmlbuildsystem.h" #include "qmlprojectrunconfiguration.h" #include "qmlmainfileaspect.h" #include "qmlmultilanguageaspect.h" -#include "qmlproject.h" #include "qmlprojectmanagerconstants.h" #include "qmlprojectmanagertr.h" @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -20,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -318,11 +320,20 @@ FilePath QmlProjectRunConfiguration::mainScript() const // QmlProjectRunConfigurationFactory -QmlProjectRunConfigurationFactory::QmlProjectRunConfigurationFactory() - : FixedRunConfigurationFactory(Tr::tr("QML Runtime"), false) +class QmlProjectRunConfigurationFactory final : public FixedRunConfigurationFactory { - registerRunConfiguration(Constants::QML_RUNCONFIG_ID); - addSupportedProjectType(Constants::QML_PROJECT_ID); +public: + QmlProjectRunConfigurationFactory() + : FixedRunConfigurationFactory(Tr::tr("QML Runtime"), false) + { + registerRunConfiguration(Constants::QML_RUNCONFIG_ID); + addSupportedProjectType(Constants::QML_PROJECT_ID); + } +}; + +void setupQmlProjectRunConfiguration() +{ + static QmlProjectRunConfigurationFactory theQmlProjectRunConfigurationFactory; } } // QmlProjectManager::Internal diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h index 529c96d5fde..dfd2b3952ed 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h @@ -3,16 +3,8 @@ #pragma once -#include +namespace QmlProjectManager::Internal { -namespace QmlProjectManager { -namespace Internal { +void setupQmlProjectRunConfiguration(); -class QmlProjectRunConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory -{ -public: - QmlProjectRunConfigurationFactory(); -}; - -} // namespace Internal -} // namespace QmlProjectManager +} // QmlProjectManager::Internal