forked from qt-creator/qt-creator
IWizardFactory: Add a feature for all running plugins
Get rid of IFeatureProviders that are only telling the wizard factory that a plugin was loaded. Change-Id: Id12c669974a6ab98036f070e1adcae35b34ca376 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -31,8 +31,11 @@
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/featureprovider.h>
|
||||
|
||||
#include <extensionsystem/pluginspec.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
|
||||
#include <QStringList>
|
||||
|
||||
/*!
|
||||
@@ -184,7 +187,22 @@ bool IWizardFactory::isAvailable(const QString &platformName) const
|
||||
{
|
||||
FeatureSet availableFeatures;
|
||||
|
||||
const QList<Core::IFeatureProvider*> featureManagers = ExtensionSystem::PluginManager::getObjects<Core::IFeatureProvider>();
|
||||
// Implicitly create a feature for each plugin loaded:
|
||||
QList<ExtensionSystem::PluginSpec *> activeSpecs;
|
||||
foreach (ExtensionSystem::PluginSpec *s, ExtensionSystem::PluginManager::plugins()) {
|
||||
if (s->state() == ExtensionSystem::PluginSpec::Running)
|
||||
activeSpecs << s;
|
||||
}
|
||||
|
||||
QStringList plugins = Utils::transform(activeSpecs,
|
||||
[](ExtensionSystem::PluginSpec *s) -> QString {
|
||||
return QStringLiteral("Plugin.") + s->name();
|
||||
});
|
||||
foreach (const QString &n, plugins)
|
||||
availableFeatures |= Feature(Core::Id::fromString(n));
|
||||
|
||||
const QList<Core::IFeatureProvider *> featureManagers
|
||||
= ExtensionSystem::PluginManager::getObjects<Core::IFeatureProvider>();
|
||||
|
||||
foreach (const Core::IFeatureProvider *featureManager, featureManagers)
|
||||
availableFeatures |= featureManager->availableFeatures(platformName);
|
||||
|
||||
Reference in New Issue
Block a user