forked from qt-creator/qt-creator
Wizards: changes the structure of Wizards
This patch introduces platforms as a top level topic when choosing a wizard. Also I changed the categories and priorities. Details: 1. I did change the way the dialog/view is structured in newdialog.cpp 2. I added platformName() and supportsPlatform() to BaseQtVersion. I needed two functions because the Simulator does not provide a platform and therefore has no platformName but supports two platforms. I still have to turn the platform names into proper constants. 3. I changed the categories and priorities to get the layout that was discussed. (I had to touch quite alot of files but this is mostly trivial) 4. I added a combobox that allows filtering for platforms. 5. I added flags() to IWizard to indicate that a wizard is platform independent. Change-Id: I86c7ad628a431ad06505c76580885c6e6c3ddc23 Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
This commit is contained in:
committed by
Alessandro Portale
parent
ea23486847
commit
95a028e835
@@ -178,14 +178,52 @@ QList<IWizard*> IWizard::wizardsOfKind(WizardKind kind)
|
||||
return findWizards(WizardKindPredicate(kind));
|
||||
}
|
||||
|
||||
bool IWizard::isAvailable() const
|
||||
bool IWizard::isAvailable(const QString &platformName) const
|
||||
{
|
||||
FeatureSet availableFeatures;
|
||||
|
||||
const QList<Core::IFeatureProvider*> featureManagers = ExtensionSystem::PluginManager::instance()->getObjects<Core::IFeatureProvider>();
|
||||
|
||||
foreach (const Core::IFeatureProvider *featureManager, featureManagers)
|
||||
availableFeatures |= featureManager->availableFeatures();
|
||||
availableFeatures |= featureManager->availableFeatures(platformName);
|
||||
|
||||
return availableFeatures.contains(requiredFeatures());
|
||||
}
|
||||
|
||||
QStringList IWizard::supportedPlatforms() const
|
||||
{
|
||||
QStringList stringList;
|
||||
|
||||
foreach (const QString &platform, allAvailablePlatforms()) {
|
||||
if (isAvailable(platform))
|
||||
stringList.append(platform);
|
||||
}
|
||||
|
||||
return stringList;
|
||||
}
|
||||
|
||||
QStringList IWizard::allAvailablePlatforms()
|
||||
{
|
||||
QStringList platforms;
|
||||
|
||||
const QList<Core::IFeatureProvider*> featureManagers =
|
||||
ExtensionSystem::PluginManager::instance()->getObjects<Core::IFeatureProvider>();
|
||||
|
||||
foreach (const Core::IFeatureProvider *featureManager, featureManagers)
|
||||
platforms.append(featureManager->availablePlatforms());
|
||||
|
||||
return platforms;
|
||||
}
|
||||
|
||||
QString IWizard::displayNameForPlatform(const QString &string)
|
||||
{
|
||||
const QList<Core::IFeatureProvider*> featureManagers =
|
||||
ExtensionSystem::PluginManager::instance()->getObjects<Core::IFeatureProvider>();
|
||||
|
||||
foreach (const Core::IFeatureProvider *featureManager, featureManagers) {
|
||||
QString displayName = featureManager->displayNameForPlatform(string);
|
||||
if (!displayName.isEmpty())
|
||||
return displayName;
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user