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

@@ -86,6 +86,7 @@ public:
QString id;
QString category;
QString displayCategory;
Core::FeatureSet requiredFeatures;
};
BaseFileWizardParameterData::BaseFileWizardParameterData(IWizard::WizardKind k) :
@@ -145,7 +146,8 @@ CORE_EXPORT QDebug operator<<(QDebug d, const BaseFileWizardParameters &p)
<< " Category: " << p.category()
<< " DisplayName: " << p.displayName()
<< " Description: " << p.description()
<< " DisplayCategory: " << p.displayCategory();
<< " DisplayCategory: " << p.displayCategory()
<< " Required Features: " << p.requiredFeatures().toStringList();
return d;
}
@@ -214,6 +216,17 @@ QString BaseFileWizardParameters::displayCategory() const
return m_d->displayCategory;
}
Core::FeatureSet BaseFileWizardParameters::requiredFeatures() const
{
return m_d->requiredFeatures;
}
void BaseFileWizardParameters::setRequiredFeatures(Core::FeatureSet features)
{
m_d->requiredFeatures = features;
}
void BaseFileWizardParameters::setDisplayCategory(const QString &v)
{
m_d->displayCategory = v;
@@ -349,6 +362,11 @@ BaseFileWizard::BaseFileWizard(const BaseFileWizardParameters &parameters,
{
}
BaseFileWizardParameters BaseFileWizard::baseFileWizardParameters() const
{
return d->m_parameters;
}
BaseFileWizard::~BaseFileWizard()
{
delete d;
@@ -497,6 +515,12 @@ void BaseFileWizard::runWizard(const QString &path, QWidget *parent)
QMessageBox::critical(0, tr("File Generation Failure"), errorMessage);
}
Core::FeatureSet BaseFileWizard::requiredFeatures() const
{
return d->m_parameters.requiredFeatures();
}
/*!
\fn virtual QWizard *Core::BaseFileWizard::createWizardDialog(QWidget *parent,
const QString &defaultPath,