Wizards: Add a method to query available features

Change-Id: I4dc03acbd2fdc040c2a49ed8923d1615489d8288
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2015-05-27 15:29:27 +02:00
parent 7c1b21f60f
commit 97cb82c1be
2 changed files with 12 additions and 6 deletions

View File

@@ -255,12 +255,7 @@ QString IWizardFactory::runPath(const QString &defaultPath)
bool IWizardFactory::isAvailable(const QString &platformName) const bool IWizardFactory::isAvailable(const QString &platformName) const
{ {
FeatureSet availableFeatures = pluginFeatures(); return availableFeatures(platformName).contains(requiredFeatures());
foreach (const IFeatureProvider *featureManager, s_providerList)
availableFeatures |= featureManager->availableFeatures(platformName);
return availableFeatures.contains(requiredFeatures());
} }
QStringList IWizardFactory::supportedPlatforms() const QStringList IWizardFactory::supportedPlatforms() const
@@ -338,6 +333,16 @@ FeatureSet IWizardFactory::pluginFeatures() const
return plugins; return plugins;
} }
FeatureSet IWizardFactory::availableFeatures(const QString &platformName) const
{
FeatureSet availableFeatures = pluginFeatures();
foreach (const IFeatureProvider *featureManager, s_providerList)
availableFeatures |= featureManager->availableFeatures(platformName);
return availableFeatures;
}
void IWizardFactory::initialize() void IWizardFactory::initialize()
{ {
connect(ICore::instance(), &ICore::coreAboutToClose, &IWizardFactory::clearWizardFactories); connect(ICore::instance(), &ICore::coreAboutToClose, &IWizardFactory::clearWizardFactories);

View File

@@ -107,6 +107,7 @@ public:
protected: protected:
FeatureSet pluginFeatures() const; FeatureSet pluginFeatures() const;
FeatureSet availableFeatures(const QString &platformName) const;
private: private:
static void initialize(); static void initialize();