From 39fc082472ad4b424a52bf88a5db02faa32c67ca Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 12 Jan 2024 13:15:55 +0100 Subject: [PATCH] CompilationDataBase: Hide plugin class definition in .cpp Change-Id: Ib6c5f1a10479f8c27cc448c38fb5e3546f1e2239 Reviewed-by: Jarek Kobus --- .../CMakeLists.txt | 15 ++-- .../compilationdatabaseprojectmanager.qbs | 1 - ...ompilationdatabaseprojectmanagerplugin.cpp | 76 +++++++++++-------- .../compilationdatabaseprojectmanagerplugin.h | 22 ------ 4 files changed, 53 insertions(+), 61 deletions(-) delete mode 100644 src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.h diff --git a/src/plugins/compilationdatabaseprojectmanager/CMakeLists.txt b/src/plugins/compilationdatabaseprojectmanager/CMakeLists.txt index 8e0430f59e5..756d3a4c6a3 100644 --- a/src/plugins/compilationdatabaseprojectmanager/CMakeLists.txt +++ b/src/plugins/compilationdatabaseprojectmanager/CMakeLists.txt @@ -3,15 +3,20 @@ add_qtc_plugin(CompilationDatabaseProjectManager PLUGIN_DEPENDS Core CppEditor ProjectExplorer TextEditor SOURCES compilationdatabaseconstants.h - compilationdatabaseproject.cpp compilationdatabaseproject.h - compilationdatabaseprojectmanagerplugin.cpp compilationdatabaseprojectmanagerplugin.h + compilationdatabaseproject.cpp + compilationdatabaseproject.h + compilationdatabaseprojectmanagerplugin.cpp compilationdatabaseprojectmanagertr.h - compilationdatabaseutils.cpp compilationdatabaseutils.h - compilationdbparser.cpp compilationdbparser.h + compilationdatabaseutils.cpp + compilationdatabaseutils.h + compilationdbparser.cpp + compilationdbparser.h ) extend_qtc_plugin(CompilationDatabaseProjectManager CONDITION WITH_TESTS SOURCES - compilationdatabasetests.cpp compilationdatabasetests.h compilationdatabasetests.qrc + compilationdatabasetests.cpp + compilationdatabasetests.h + compilationdatabasetests.qrc ) diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanager.qbs b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanager.qbs index ce7e4e35ac3..69cfc1122c6 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanager.qbs +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanager.qbs @@ -16,7 +16,6 @@ QtcPlugin { "compilationdatabaseutils.cpp", "compilationdatabaseutils.h", "compilationdatabaseprojectmanagerplugin.cpp", - "compilationdatabaseprojectmanagerplugin.h", "compilationdbparser.cpp", "compilationdbparser.h", ] diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp index 13f03c0ed31..ec5b12737f1 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp @@ -1,8 +1,6 @@ // Copyright (C) 2018 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "compilationdatabaseprojectmanagerplugin.h" - #include "compilationdatabaseconstants.h" #include "compilationdatabaseproject.h" #include "compilationdatabaseprojectmanagertr.h" @@ -12,6 +10,8 @@ #include #include +#include + #include #include #include @@ -37,50 +37,60 @@ public: QAction changeRootAction{Tr::tr("Change Root Directory")}; }; -CompilationDatabaseProjectManagerPlugin::~CompilationDatabaseProjectManagerPlugin() +class CompilationDatabaseProjectManagerPlugin final : public ExtensionSystem::IPlugin { - delete d; -} + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CompilationDatabaseProjectManager.json") -void CompilationDatabaseProjectManagerPlugin::initialize() -{ - d = new CompilationDatabaseProjectManagerPluginPrivate; + ~CompilationDatabaseProjectManagerPlugin() + { + delete d; + } - Utils::FileIconProvider::registerIconOverlayForFilename(Utils::Icons::PROJECT.imageFilePath().toString(), - COMPILE_COMMANDS_JSON); - Utils::FileIconProvider::registerIconOverlayForFilename( - Utils::Icons::PROJECT.imageFilePath().toString(), - QString(COMPILE_COMMANDS_JSON) + Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX); + void initialize() final + { + d = new CompilationDatabaseProjectManagerPluginPrivate; - ProjectManager::registerProjectType( - Constants::COMPILATIONDATABASEMIMETYPE); + Utils::FileIconProvider::registerIconOverlayForFilename(Utils::Icons::PROJECT.imageFilePath().toString(), + COMPILE_COMMANDS_JSON); + Utils::FileIconProvider::registerIconOverlayForFilename( + Utils::Icons::PROJECT.imageFilePath().toString(), + QString(COMPILE_COMMANDS_JSON) + Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX); - Command *cmd = ActionManager::registerAction(&d->changeRootAction, CHANGEROOTDIR); + ProjectManager::registerProjectType( + Constants::COMPILATIONDATABASEMIMETYPE); - ActionContainer *mprojectContextMenu = ActionManager::actionContainer( - ProjectExplorer::Constants::M_PROJECTCONTEXT); - mprojectContextMenu->addSeparator(ProjectExplorer::Constants::G_PROJECT_TREE); - mprojectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_TREE); + Command *cmd = ActionManager::registerAction(&d->changeRootAction, CHANGEROOTDIR); - connect(&d->changeRootAction, &QAction::triggered, - ProjectTree::instance(), &ProjectTree::changeProjectRootDirectory); + ActionContainer *mprojectContextMenu = ActionManager::actionContainer( + ProjectExplorer::Constants::M_PROJECTCONTEXT); + mprojectContextMenu->addSeparator(ProjectExplorer::Constants::G_PROJECT_TREE); + mprojectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_TREE); - const auto onProjectChanged = [this] { - const auto currentProject = qobject_cast( - ProjectTree::currentProject()); + connect(&d->changeRootAction, &QAction::triggered, + ProjectTree::instance(), &ProjectTree::changeProjectRootDirectory); - d->changeRootAction.setEnabled(currentProject); - }; + const auto onProjectChanged = [this] { + const auto currentProject = qobject_cast( + ProjectTree::currentProject()); - connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, - this, onProjectChanged); + d->changeRootAction.setEnabled(currentProject); + }; - connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, - this, onProjectChanged); + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, + this, onProjectChanged); + + connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, + this, onProjectChanged); #ifdef WITH_TESTS - addTest(); + addTest(); #endif -} + } + + class CompilationDatabaseProjectManagerPluginPrivate *d = nullptr; +}; } // CompilationDatabaseProjectManager::Internal + +#include "compilationdatabaseprojectmanagerplugin.moc" diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.h b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.h deleted file mode 100644 index 24642bfce8d..00000000000 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (C) 2018 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -namespace CompilationDatabaseProjectManager::Internal { - -class CompilationDatabaseProjectManagerPlugin final : public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CompilationDatabaseProjectManager.json") - - ~CompilationDatabaseProjectManagerPlugin(); - - void initialize() final; - - class CompilationDatabaseProjectManagerPluginPrivate *d = nullptr; -}; - -} // CompilationDatabaseProjectManager::Internal