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

@@ -39,6 +39,7 @@
#include "qt4projectmanagerconstants.h"
#include <qtsupport/qtsupportconstants.h>
#include <coreplugin/dialogs/iwizard.h>
#include <QtCore/QCoreApplication>
#include <QtGui/QIcon>
@@ -87,19 +88,12 @@ bool QtQuickAppWizardDialog::validateCurrentPage()
setIgnoreGenericOptionsPage(false);
if (m_componentOptionsPage->componentSet() == QtQuickApp::Symbian11Components) {
setIgnoreGenericOptionsPage(true);
targetsPage()->setMinimumQtVersion(QtSupport::QtVersionNumber(4, 7, 4));
QSet<QString> requiredFeatures;
requiredFeatures << QLatin1String(Constants::QTQUICKCOMPONENTS_SYMBIAN_TARGETFEATURE_ID);
targetsPage()->setRequiredFeatures(requiredFeatures);
targetsPage()->setRequiredQtFeatures(Core::FeatureSet(QtSupport::Constants::FEATURE_QTQUICK_COMPONENTS_MEEGO));
} else if (m_componentOptionsPage->componentSet() == QtQuickApp::Meego10Components) {
targetsPage()->setMinimumQtVersion(QtSupport::QtVersionNumber(4, 7, 4));
QSet<QString> requiredFeatures;
requiredFeatures << QLatin1String(Constants::QTQUICKCOMPONENTS_MEEGO_TARGETFEATURE_ID);
targetsPage()->setRequiredFeatures(requiredFeatures);
targetsPage()->setRequiredQtFeatures(Core::FeatureSet(QtSupport::Constants::FEATURE_QTQUICK_COMPONENTS_MEEGO));
} else {
targetsPage()->setMinimumQtVersion(QtSupport::QtVersionNumber(4, 7, 0));
QSet<QString> requiredFeatures;
targetsPage()->setRequiredFeatures(requiredFeatures);
targetsPage()->setRequiredQtFeatures(Core::FeatureSet());
}
}
return AbstractMobileAppWizardDialog::validateCurrentPage();
@@ -126,6 +120,13 @@ QtQuickAppWizard::~QtQuickAppWizard()
delete d;
}
Core::FeatureSet QtQuickAppWizard::requiredFeatures() const
{
return Core::Feature(QtSupport::Constants::FEATURE_GENERIC_CPP_ENTRY_POINT) |
Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK);
}
Core::BaseFileWizardParameters QtQuickAppWizard::parameters()
{
Core::BaseFileWizardParameters parameters(ProjectWizard);