diff --git a/src/plugins/docker/CMakeLists.txt b/src/plugins/docker/CMakeLists.txt index b2773c25056..827c78732dc 100644 --- a/src/plugins/docker/CMakeLists.txt +++ b/src/plugins/docker/CMakeLists.txt @@ -8,7 +8,7 @@ add_qtc_plugin(Docker dockerconstants.h dockerdevice.cpp dockerdevice.h dockerdevicewidget.cpp dockerdevicewidget.h - dockerplugin.cpp dockerplugin.h + dockerplugin.cpp dockersettings.cpp dockersettings.h kitdetector.cpp kitdetector.h ) diff --git a/src/plugins/docker/docker.qbs b/src/plugins/docker/docker.qbs index d2e0dd416fd..a2cb29ae9e9 100644 --- a/src/plugins/docker/docker.qbs +++ b/src/plugins/docker/docker.qbs @@ -20,7 +20,6 @@ QtcPlugin { "dockerdevicewidget.cpp", "dockerdevicewidget.h", "dockerplugin.cpp", - "dockerplugin.h", "dockersettings.cpp", "dockersettings.h", "kitdetector.cpp", diff --git a/src/plugins/docker/dockerplugin.cpp b/src/plugins/docker/dockerplugin.cpp index a3714f13148..eb4ce5a7468 100644 --- a/src/plugins/docker/dockerplugin.cpp +++ b/src/plugins/docker/dockerplugin.cpp @@ -1,16 +1,15 @@ // Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "dockerplugin.h" - #include "dockerapi.h" #include "dockerconstants.h" #include "dockerdevice.h" +#include + #include #include -#include using namespace Core; using namespace ProjectExplorer; @@ -18,32 +17,34 @@ using namespace Utils; namespace Docker::Internal { -class DockerPluginPrivate +class DockerPlugin final : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Docker.json") + public: - ~DockerPluginPrivate() + DockerPlugin() { - m_deviceFactory.shutdownExistingDevices(); + FSEngine::registerDeviceScheme(Constants::DOCKER_DEVICE_SCHEME); } - DockerDeviceFactory m_deviceFactory; - DockerApi m_dockerApi; +private: + ~DockerPlugin() final + { + FSEngine::unregisterDeviceScheme(Constants::DOCKER_DEVICE_SCHEME); + m_deviceFactory->shutdownExistingDevices(); + } + + void initialize() final + { + m_deviceFactory = std::make_unique(); + m_dockerApi = std::make_unique(); + } + + std::unique_ptr m_deviceFactory; + std::unique_ptr m_dockerApi; }; -DockerPlugin::DockerPlugin() -{ - FSEngine::registerDeviceScheme(Constants::DOCKER_DEVICE_SCHEME); -} +} // Docker::Internal -DockerPlugin::~DockerPlugin() -{ - FSEngine::unregisterDeviceScheme(Constants::DOCKER_DEVICE_SCHEME); - delete d; -} - -void DockerPlugin::initialize() -{ - d = new DockerPluginPrivate; -} - -} // Docker::Interanl +#include "dockerplugin.moc" diff --git a/src/plugins/docker/dockerplugin.h b/src/plugins/docker/dockerplugin.h deleted file mode 100644 index 267244709d8..00000000000 --- a/src/plugins/docker/dockerplugin.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (C) 2021 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 Docker::Internal { - -class DockerPlugin final : public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Docker.json") - -public: - DockerPlugin(); - -private: - ~DockerPlugin() final; - - void initialize() final; - - class DockerPluginPrivate *d = nullptr; -}; - -} // Docker::Internal