Wizards: allows filtering of wizards based on Qt version

Every wizard now implements requiredFeatures() to define a feature set.
If the feature set is not satisfied by the available Qt Versions,
the wizard is not shown in the create file/project dialog.

Every Qt version can define the provided feature set in availableFeatures()
defined in BaseQtVersion.

Change-Id: Ie9e2c210d19187b2296451948c36d274f2096623
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
This commit is contained in:
Thomas Hartmann
2012-01-18 13:50:14 +01:00
parent 31d5ec9cab
commit 17a7bd17d0
73 changed files with 639 additions and 54 deletions

View File

@@ -35,6 +35,8 @@
#include <extensionsystem/pluginmanager.h>
#include <QtCore/QStringList>
/*!
\class Core::IWizard
\mainclass
@@ -178,3 +180,14 @@ QList<IWizard*> IWizard::wizardsOfKind(WizardKind kind)
return findWizards(WizardKindPredicate(kind));
}
bool IWizard::isAvailable() const
{
FeatureSet availableFeatures;
const QList<Core::IFeatureProvider*> featureManagers = ExtensionSystem::PluginManager::instance()->getObjects<Core::IFeatureProvider>();
foreach (const Core::IFeatureProvider *featureManager, featureManagers)
availableFeatures |= featureManager->availableFeatures();
return availableFeatures.contains(requiredFeatures());
}