FeatureProvider: Remove Feature and FeatureSet

Use Core::Id for Feature and QSet<Core::Id> for FeatureSet.

Change-Id: I12341036bd9eaa82589d92bd3f7d21f2e6b737bd
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2015-11-27 11:31:35 +01:00
parent 19ee414446
commit 4b0a8648e4
44 changed files with 141 additions and 340 deletions

View File

@@ -52,92 +52,7 @@
\sa QtSupport::QtVersionManager
*/
/*!
\fn IFeatureProvider::IFeatureProvider()
\internal
*/
/*!
\fn IFeatureProvider::~IFeatureProvider()
\internal
*/
/*!
\fn FetureSet IFeatureProvider::availableFeatures(const QString &platform) const
Returns available features provided by this manager.
\sa FeatureProvider::Features
*/
/*!
\class Core::Feature
\brief The Feature class describes a single feature to be used in
Core::FeatureProvider::Features.
\sa Core::FeaturesSet
\sa Core::IWizard
\sa QtSupport::QtVersionManager
*/
/*!
\class Core::FeatureSet
\brief The FeatureSet class is a set of available or required feature sets.
This class behaves similarly to QFlags. However, instead of enums, Features
relies on string ids and is therefore extendable.
\sa Core::Feature
\sa Core::IWizard
\sa QtSupport::QtVersionManager
*/
/*!
\fn bool FeatureSet::contains(const Feature &feature) const
Returns true if \a feature is available.
*/
/*!
\fn bool FeatureSet::contains(const FeatureSet &features) const
Returns true if all \a features are available.
*/
Core::Feature Core::Feature::versionedFeature(const QByteArray &prefix, int major, int minor)
{
if (major < 0)
return Feature::fromName(prefix);
QByteArray result = prefix + '.';
result += QString::number(major).toLatin1();
if (minor < 0)
return Feature::fromName(result);
return Feature::fromName(result + '.' + QString::number(minor).toLatin1());
}
Core::FeatureSet Core::FeatureSet::versionedFeatures(const QByteArray &prefix, int major, int minor)
{
FeatureSet result;
result |= Feature::fromName(prefix);
if (major < 0)
return result;
const QByteArray majorStr = QString::number(major).toLatin1();
const QByteArray featureMajor = prefix + majorStr;
const QByteArray featureDotMajor = prefix + '.' + majorStr;
result |= Feature::fromName(featureMajor) | Feature::fromName(featureDotMajor);
for (int i = 0; i <= minor; ++i) {
const QByteArray minorStr = QString::number(i).toLatin1();
result |= Feature::fromName(featureMajor + '.' + minorStr)
| Feature::fromName(featureDotMajor + '.' + minorStr);
}
return result;
}