diff --git a/src/plugins/python/pipsupport.cpp b/src/plugins/python/pipsupport.cpp index 1ece0c534ca..ea78e884869 100644 --- a/src/plugins/python/pipsupport.cpp +++ b/src/plugins/python/pipsupport.cpp @@ -221,7 +221,7 @@ QFuture Pip::info(const PipPackage &package) } Pip::Pip(const Utils::FilePath &python) - : QObject(PythonPlugin::instance()) + : QObject(pluginInstance()) , m_python(python) {} diff --git a/src/plugins/python/pyside.cpp b/src/plugins/python/pyside.cpp index 8d3b1d31a38..5a46bc3049c 100644 --- a/src/plugins/python/pyside.cpp +++ b/src/plugins/python/pyside.cpp @@ -81,7 +81,7 @@ QString PySideInstaller::importedPySide(const QString &text) } PySideInstaller::PySideInstaller() - : QObject(PythonPlugin::instance()) + : QObject(pluginInstance()) {} void PySideInstaller::installPyside(const FilePath &python, diff --git a/src/plugins/python/pythonlanguageclient.cpp b/src/plugins/python/pythonlanguageclient.cpp index 5a54a8c4b64..aaf1e7c8a3d 100644 --- a/src/plugins/python/pythonlanguageclient.cpp +++ b/src/plugins/python/pythonlanguageclient.cpp @@ -265,7 +265,7 @@ PyLSClient *PyLSClient::clientForPython(const FilePath &python) PyLSConfigureAssistant *PyLSConfigureAssistant::instance() { - static auto *instance = new PyLSConfigureAssistant(PythonPlugin::instance()); + static auto *instance = new PyLSConfigureAssistant(pluginInstance()); return instance; } diff --git a/src/plugins/python/pythonplugin.cpp b/src/plugins/python/pythonplugin.cpp index d74c45b7784..61f1cc2421c 100644 --- a/src/plugins/python/pythonplugin.cpp +++ b/src/plugins/python/pythonplugin.cpp @@ -13,6 +13,8 @@ #include "pythontr.h" #include "pythonwizardpage.h" +#include + #include #include #include @@ -28,7 +30,12 @@ using namespace Utils; namespace Python::Internal { -static PythonPlugin *m_instance = nullptr; +static QObject *m_instance = nullptr; + +QObject *pluginInstance() +{ + return m_instance; +} class PythonPluginPrivate { @@ -43,44 +50,51 @@ public: PythonWizardPageFactory pythonWizardPageFactory; }; -PythonPlugin::PythonPlugin() +class PythonPlugin final : public ExtensionSystem::IPlugin { - m_instance = this; -} + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Python.json") -PythonPlugin::~PythonPlugin() -{ - m_instance = nullptr; - delete d; -} +public: + PythonPlugin() + { + m_instance = this; + } -PythonPlugin *PythonPlugin::instance() -{ - return m_instance; -} + ~PythonPlugin() final + { + m_instance = nullptr; + delete d; + } -void PythonPlugin::initialize() -{ - d = new PythonPluginPrivate; +private: + void initialize() final + { + d = new PythonPluginPrivate; - KitManager::setIrrelevantAspects(KitManager::irrelevantAspects() - + QSet{PythonKitAspect::id()}); + KitManager::setIrrelevantAspects(KitManager::irrelevantAspects() + + QSet{PythonKitAspect::id()}); - ProjectManager::registerProjectType(Constants::C_PY_PROJECT_MIME_TYPE); - ProjectManager::registerProjectType(Constants::C_PY_PROJECT_MIME_TYPE_LEGACY); -} + ProjectManager::registerProjectType(Constants::C_PY_PROJECT_MIME_TYPE); + ProjectManager::registerProjectType(Constants::C_PY_PROJECT_MIME_TYPE_LEGACY); + } -void PythonPlugin::extensionsInitialized() -{ - // Add MIME overlay icons (these icons displayed at Project dock panel) - const QString imageFile = Utils::creatorTheme()->imageFile(Theme::IconOverlayPro, - ::Constants::FILEOVERLAY_PY); - FileIconProvider::registerIconOverlayForSuffix(imageFile, "py"); + void extensionsInitialized() final + { + // Add MIME overlay icons (these icons displayed at Project dock panel) + const QString imageFile = Utils::creatorTheme()->imageFile(Theme::IconOverlayPro, + ::Constants::FILEOVERLAY_PY); + FileIconProvider::registerIconOverlayForSuffix(imageFile, "py"); - TaskHub::addCategory({PythonErrorTaskCategory, - "Python", - Tr::tr("Issues parsed from Python runtime output."), - true}); -} + TaskHub::addCategory({PythonErrorTaskCategory, + "Python", + Tr::tr("Issues parsed from Python runtime output."), + true}); + } + + PythonPluginPrivate *d = nullptr; +}; } // Python::Internal + +#include "pythonplugin.moc" diff --git a/src/plugins/python/pythonplugin.h b/src/plugins/python/pythonplugin.h index aefe24d2406..5fc13b6ae04 100644 --- a/src/plugins/python/pythonplugin.h +++ b/src/plugins/python/pythonplugin.h @@ -3,28 +3,10 @@ #pragma once -#include +#include namespace Python::Internal { -class PythonBuildConfigurationFactory; - -class PythonPlugin final : public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Python.json") - -public: - PythonPlugin(); - ~PythonPlugin() final; - - static PythonPlugin *instance(); - -private: - void initialize() final; - void extensionsInitialized() final; - - class PythonPluginPrivate *d = nullptr; -}; +QObject *pluginInstance(); } // Python::Internal diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index 16d800b9316..887e5ce44b0 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -642,7 +642,7 @@ static void disableOutdatedPyls() disableOutdatedPylsNow(); } else { QObject::connect(PluginManager::instance(), &PluginManager::initializationDone, - PythonPlugin::instance(), &disableOutdatedPylsNow); + pluginInstance(), &disableOutdatedPylsNow); } }