From 0db551bfe7465fef862b94bcfca217847a0494d4 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 15 Jan 2024 18:11:28 +0100 Subject: [PATCH] QbsProjectManager: Hide plugin class definition in .cpp Change-Id: I06944d633950ca5f6a81775ee3aede92796d8458 Reviewed-by: Jarek Kobus Reviewed-by: --- src/plugins/qbsprojectmanager/qbsnodes.cpp | 4 +- .../qbsprojectmanagerplugin.cpp | 75 ++++++++++++++++-- .../qbsprojectmanagerplugin.h | 79 +------------------ 3 files changed, 76 insertions(+), 82 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 2d034108811..aa1dae6bcc6 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -102,8 +102,8 @@ QbsProductNode::QbsProductNode(const QJsonObject &prd) : ProjectNode(FilePath()) void QbsProductNode::build() { - QbsProjectManagerPlugin::buildNamedProduct(static_cast(getProject()), - m_productData.value("full-display-name").toString()); + buildNamedProduct(static_cast(getProject()), + m_productData.value("full-display-name").toString()); } QStringList QbsProductNode::targetApplications() const diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index ea8c9217ccc..b2656b8b7ec 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -26,6 +26,8 @@ #include #include +#include + #include #include #include @@ -38,15 +40,16 @@ #include #include +#include #include #include #include using namespace ProjectExplorer; +using namespace Utils; -namespace QbsProjectManager { -namespace Internal { +namespace QbsProjectManager::Internal { static Node *currentEditorNode() { @@ -72,6 +75,67 @@ public: QbsEditorFactory editorFactory; }; +class QbsProjectManagerPlugin final : public ExtensionSystem::IPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QbsProjectManager.json") + +public: + static void runStepsForProducts(QbsProject *project, + const QStringList &products, + const QList &stepTypes); + +private: + ~QbsProjectManagerPlugin() final; + + void initialize() final; + + void targetWasAdded(ProjectExplorer::Target *target); + void projectChanged(QbsProject *project); + + void buildFileContextMenu(); + void buildFile(); + void buildProductContextMenu(); + void cleanProductContextMenu(); + void rebuildProductContextMenu(); + void runStepsForProductContextMenu(const QList &stepTypes); + void buildProduct(); + void cleanProduct(); + void rebuildProduct(); + void runStepsForProduct(const QList &stepTypes); + void buildSubprojectContextMenu(); + void cleanSubprojectContextMenu(); + void rebuildSubprojectContextMenu(); + void runStepsForSubprojectContextMenu(const QList &stepTypes); + + void reparseSelectedProject(); + void reparseCurrentProject(); + void reparseProject(QbsProject *project); + + void updateContextActions(ProjectExplorer::Node *node); + void updateReparseQbsAction(); + void updateBuildActions(); + + void buildFiles(QbsProject *project, const QStringList &files, + const QStringList &activeFileTags); + void buildSingleFile(QbsProject *project, const QString &file); + + QbsProjectManagerPluginPrivate *d = nullptr; + QAction *m_reparseQbs = nullptr; + QAction *m_reparseQbsCtx = nullptr; + QAction *m_buildFileCtx = nullptr; + QAction *m_buildProductCtx = nullptr; + QAction *m_cleanProductCtx = nullptr; + QAction *m_rebuildProductCtx = nullptr; + QAction *m_buildSubprojectCtx = nullptr; + QAction *m_cleanSubprojectCtx = nullptr; + QAction *m_rebuildSubprojectCtx = nullptr; + ParameterAction *m_buildFile = nullptr; + ParameterAction *m_buildProduct = nullptr; + QAction *m_cleanProduct = nullptr; + QAction *m_rebuildProduct = nullptr; +}; + QbsProjectManagerPlugin::~QbsProjectManagerPlugin() { delete d; @@ -549,11 +613,12 @@ void QbsProjectManagerPlugin::reparseProject(QbsProject *project) bs->scheduleParsing(); } -void QbsProjectManagerPlugin::buildNamedProduct(QbsProject *project, const QString &product) +void buildNamedProduct(QbsProject *project, const QString &product) { QbsProjectManagerPlugin::runStepsForProducts( project, QStringList(product), {Utils::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD)}); } -} // namespace Internal -} // namespace QbsProjectManager +} // QbsProjectManager::Internal + +#include "qbsprojectmanagerplugin.moc" diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h index bfda1ff3e97..84882463762 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h @@ -3,83 +3,12 @@ #pragma once -#include -#include -#include +#include -namespace ProjectExplorer { -class Target; -class Node; -} // namespace ProjectExplorer - -namespace QbsProjectManager { -namespace Internal { +namespace QbsProjectManager::Internal { class QbsProject; -class QbsProjectManagerPluginPrivate; -class QbsProjectManagerPlugin final : public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QbsProjectManager.json") +void buildNamedProduct(QbsProject *project, const QString &product); -public: - static void buildNamedProduct(QbsProject *project, const QString &product); - -private: - ~QbsProjectManagerPlugin() final; - - void initialize() final; - - void targetWasAdded(ProjectExplorer::Target *target); - void projectChanged(QbsProject *project); - - void buildFileContextMenu(); - void buildFile(); - void buildProductContextMenu(); - void cleanProductContextMenu(); - void rebuildProductContextMenu(); - void runStepsForProductContextMenu(const QList &stepTypes); - void buildProduct(); - void cleanProduct(); - void rebuildProduct(); - void runStepsForProduct(const QList &stepTypes); - void buildSubprojectContextMenu(); - void cleanSubprojectContextMenu(); - void rebuildSubprojectContextMenu(); - void runStepsForSubprojectContextMenu(const QList &stepTypes); - - void reparseSelectedProject(); - void reparseCurrentProject(); - void reparseProject(QbsProject *project); - - void updateContextActions(ProjectExplorer::Node *node); - void updateReparseQbsAction(); - void updateBuildActions(); - - void buildFiles(QbsProject *project, const QStringList &files, - const QStringList &activeFileTags); - void buildSingleFile(QbsProject *project, const QString &file); - - static void runStepsForProducts(QbsProject *project, - const QStringList &products, - const QList &stepTypes); - - QbsProjectManagerPluginPrivate *d = nullptr; - QAction *m_reparseQbs = nullptr; - QAction *m_reparseQbsCtx = nullptr; - QAction *m_buildFileCtx = nullptr; - QAction *m_buildProductCtx = nullptr; - QAction *m_cleanProductCtx = nullptr; - QAction *m_rebuildProductCtx = nullptr; - QAction *m_buildSubprojectCtx = nullptr; - QAction *m_cleanSubprojectCtx = nullptr; - QAction *m_rebuildSubprojectCtx = nullptr; - Utils::ParameterAction *m_buildFile = nullptr; - Utils::ParameterAction *m_buildProduct = nullptr; - QAction *m_cleanProduct = nullptr; - QAction *m_rebuildProduct = nullptr; -}; - -} // namespace Internal -} // namespace QbsProjectManager +} // QbsProjectManager::Private