diff options
Diffstat (limited to 'src/plugins/projectexplorer/customwizard/customwizard.cpp')
-rw-r--r-- | src/plugins/projectexplorer/customwizard/customwizard.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/projectexplorer/customwizard/customwizard.cpp b/src/plugins/projectexplorer/customwizard/customwizard.cpp index 057b49840d..c9a84889d1 100644 --- a/src/plugins/projectexplorer/customwizard/customwizard.cpp +++ b/src/plugins/projectexplorer/customwizard/customwizard.cpp @@ -65,6 +65,19 @@ bool enableLoadTemplateFiles() namespace ProjectExplorer { +static QList<ICustomWizardMetaFactory *> g_customWizardMetaFactories; + +ICustomWizardMetaFactory::ICustomWizardMetaFactory(const QString &klass, Core::IWizardFactory::WizardKind kind) : + m_klass(klass), m_kind(kind) +{ + g_customWizardMetaFactories.append(this); +} + +ICustomWizardMetaFactory::~ICustomWizardMetaFactory() +{ + g_customWizardMetaFactories.removeOne(this); +} + namespace Internal { /*! \class ProjectExplorer::ICustomWizardFactory @@ -338,7 +351,7 @@ CustomWizard::CustomWizardContextPtr CustomWizard::context() const CustomWizard *CustomWizard::createWizard(const CustomProjectWizard::CustomWizardParametersPtr &p) { - ICustomWizardMetaFactory *factory = ExtensionSystem::PluginManager::getObject<ICustomWizardMetaFactory>( + ICustomWizardMetaFactory *factory = Utils::findOrDefault(g_customWizardMetaFactories, [&p](ICustomWizardMetaFactory *factory) { return p->klass.isEmpty() ? (p->kind == factory->kind()) : (p->klass == factory->klass()); }); |