diff --git a/src/plugins/python/pythonplugin.cpp b/src/plugins/python/pythonplugin.cpp index 8410d31f9fb..60849b3158d 100644 --- a/src/plugins/python/pythonplugin.cpp +++ b/src/plugins/python/pythonplugin.cpp @@ -40,13 +40,6 @@ QObject *pluginInstance() return m_instance; } -class PythonPluginPrivate -{ -public: - PythonSettings settings; - PythonWizardPageFactory pythonWizardPageFactory; -}; - class PythonPlugin final : public ExtensionSystem::IPlugin { Q_OBJECT @@ -61,14 +54,11 @@ public: ~PythonPlugin() final { m_instance = nullptr; - delete d; } private: void initialize() final { - d = new PythonPluginPrivate; - setupPythonEditorFactory(this); setupPySideBuildStep(); @@ -79,6 +69,9 @@ private: setupPythonDebugWorker(); setupPythonOutputParser(); + setupPythonSettings(this); + setupPythonWizard(); + KitManager::setIrrelevantAspects(KitManager::irrelevantAspects() + QSet{PythonKitAspect::id()}); @@ -98,8 +91,6 @@ private: Tr::tr("Issues parsed from Python runtime output."), true}); } - - PythonPluginPrivate *d = nullptr; }; } // Python::Internal diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index b72a125d130..c2cb874bd5f 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -1193,6 +1193,12 @@ Interpreter PythonSettings::interpreter(const QString &interpreterId) Utils::equal(&Interpreter::id, interpreterId)); } +void setupPythonSettings(QObject *guard) +{ + new PythonSettings; // Initializes settingsInstance + settingsInstance->setParent(guard); +} + } // Python::Internal #include "pythonsettings.moc" diff --git a/src/plugins/python/pythonsettings.h b/src/plugins/python/pythonsettings.h index 99ca4f02b00..cc08dc8361e 100644 --- a/src/plugins/python/pythonsettings.h +++ b/src/plugins/python/pythonsettings.h @@ -71,4 +71,6 @@ private: static void saveSettings(); }; +void setupPythonSettings(QObject *guard); + } // Python::Internal diff --git a/src/plugins/python/pythonwizardpage.cpp b/src/plugins/python/pythonwizardpage.cpp index dc4895eb3e0..43e72d06b7d 100644 --- a/src/plugins/python/pythonwizardpage.cpp +++ b/src/plugins/python/pythonwizardpage.cpp @@ -10,25 +10,47 @@ #include -#include -#include -#include -#include - +#include +#include #include #include #include +#include #include +#include +#include +#include +#include +#include +#include + using namespace ProjectExplorer; using namespace Utils; namespace Python::Internal { -PythonWizardPageFactory::PythonWizardPageFactory() +class PythonWizardPage final : public WizardPage { - setTypeIdsSuffix("PythonConfiguration"); -} +public: + PythonWizardPage(const QList> &pySideAndData, int defaultPyside); + bool validatePage() final; + +private: + SelectionAspect m_pySideVersion; +}; + +class PythonWizardPageFactory final : public JsonWizardPageFactory +{ +public: + PythonWizardPageFactory() + { + setTypeIdsSuffix("PythonConfiguration"); + } + + WizardPage *create(JsonWizard *wizard, Id typeId, const QVariant &data) final; + bool validateData(Utils::Id typeId, const QVariant &data, QString *errorMessage) final; +}; WizardPage *PythonWizardPageFactory::create(JsonWizard *wizard, Id typeId, const QVariant &data) { @@ -110,5 +132,10 @@ bool PythonWizardPage::validatePage() return true; } +void setupPythonWizard() +{ + static PythonWizardPageFactory thePythonWizardPageFactory; +} + } // namespace Python::Internal diff --git a/src/plugins/python/pythonwizardpage.h b/src/plugins/python/pythonwizardpage.h index d68ea4b8544..af294616fee 100644 --- a/src/plugins/python/pythonwizardpage.h +++ b/src/plugins/python/pythonwizardpage.h @@ -3,34 +3,8 @@ #pragma once -#include -#include -#include - -#include -#include - namespace Python::Internal { -class PythonWizardPageFactory : public ProjectExplorer::JsonWizardPageFactory -{ -public: - PythonWizardPageFactory(); - - Utils::WizardPage *create(ProjectExplorer::JsonWizard *wizard, - Utils::Id typeId, - const QVariant &data) override; - bool validateData(Utils::Id typeId, const QVariant &data, QString *errorMessage) override; -}; - -class PythonWizardPage : public Utils::WizardPage -{ -public: - PythonWizardPage(const QList> &pySideAndData, const int defaultPyside); - bool validatePage() override; - -private: - Utils::SelectionAspect m_pySideVersion; -}; +void setupPythonWizard(); } // namespace Python::Internal