summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-06-24 15:56:47 +0200
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-06-25 14:09:19 +0000
commit705ac153423e91b236094507777586f641805d31 (patch)
tree8f3d6ce7e3757ef2915247512f7cd48d9987da92
parent4de821a8a44268c07a2a2bfa73620b1df29f0c76 (diff)
downloadqt-creator-705ac153423e91b236094507777586f641805d31.tar.gz
Move some code from QtVersionNumber to FeatureSet
Change-Id: I35f187606c3922809673d44ea2e1f15e91a9e62b Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
-rw-r--r--src/plugins/coreplugin/featureprovider.cpp39
-rw-r--r--src/plugins/coreplugin/featureprovider.h4
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp10
3 files changed, 42 insertions, 11 deletions
diff --git a/src/plugins/coreplugin/featureprovider.cpp b/src/plugins/coreplugin/featureprovider.cpp
index 3b32e59e15..4e4bc061b8 100644
--- a/src/plugins/coreplugin/featureprovider.cpp
+++ b/src/plugins/coreplugin/featureprovider.cpp
@@ -86,8 +86,7 @@
\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.
+ relies on string ids and is therefore extendable.
\sa Core::Feature
\sa Core::IWizard
@@ -106,3 +105,39 @@
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;
+}
diff --git a/src/plugins/coreplugin/featureprovider.h b/src/plugins/coreplugin/featureprovider.h
index 6169096679..fc16ac6bdc 100644
--- a/src/plugins/coreplugin/featureprovider.h
+++ b/src/plugins/coreplugin/featureprovider.h
@@ -61,6 +61,8 @@ public:
static Feature fromString(const QString &str) { return Feature(Id::fromString(str)); }
static Feature fromName(const QByteArray &ba) { return Feature(Id::fromName(ba)); }
+ static Feature versionedFeature(const QByteArray &prefix, int major = -1, int minor = -1);
+
private:
explicit Feature(const Id id) : Id(id) { }
};
@@ -78,6 +80,8 @@ public:
FeatureSet(const FeatureSet &other) = default;
FeatureSet &operator=(const FeatureSet &other) = default;
+ static FeatureSet versionedFeatures(const QByteArray &prefix, int major, int minor = -1);
+
using QSet<Feature>::isEmpty;
bool contains(const Feature &feature) const
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index e642c83f81..3363ca6a32 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -98,15 +98,7 @@ QtVersionNumber::QtVersionNumber()
FeatureSet QtVersionNumber::features() const
{
- FeatureSet result;
- result |= Feature(Constants::FEATURE_QT);
- if (majorVersion >= 0) {
- QString featureMajor = QString::fromLatin1(Constants::FEATURE_QT) + QString::number(majorVersion);
- result |= Feature::fromString(featureMajor);
- for (int i = 0; i <= minorVersion; ++i)
- result |= Feature::fromString(featureMajor + QLatin1Char('.') + QString::number(i));
- }
- return result;
+ return FeatureSet::versionedFeatures(Constants::FEATURE_QT, majorVersion, minorVersion);
}
bool QtVersionNumber::operator <(const QtVersionNumber &b) const