summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-06-24 16:09:07 +0200
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-06-25 14:09:25 +0000
commit57d652743e0d7ce2980a7d0f638c6824a19e50a4 (patch)
treee2ed160d7112ee91b420aa87190504019008c46a
parent705ac153423e91b236094507777586f641805d31 (diff)
downloadqt-creator-57d652743e0d7ce2980a7d0f638c6824a19e50a4.tar.gz
Qt: Update features for Qt 5.5
* Add QtVersionNumber::matches to match against a Qt version to make the code setting the features easier to follow. * Use versionedFeatures instead of adding new string constants for the latest and greatest Qt Quick and Qt Quick Controls. * Fix Qt-version-to-features mapping as discussed in QTCREATORBUG-14575 * Simplify code in qmljsbundleprovider.cpp: It should do the same thing as the old one. Change-Id: Iba24e9d299a2a2e5d6e4de7cd1e95707a574678e Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
-rw-r--r--src/plugins/qmakeprojectmanager/wizards/librarywizard.cpp2
-rw-r--r--src/plugins/qmakeprojectmanager/wizards/subdirsprojectwizard.cpp2
-rw-r--r--src/plugins/qmakeprojectmanager/wizards/testwizard.cpp2
-rw-r--r--src/plugins/qmljstools/qmljsbundleprovider.cpp6
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp78
-rw-r--r--src/plugins/qtsupport/baseqtversion.h3
-rw-r--r--src/plugins/qtsupport/qtsupportconstants.h19
-rw-r--r--src/plugins/winrt/winrtqtversion.cpp2
8 files changed, 61 insertions, 53 deletions
diff --git a/src/plugins/qmakeprojectmanager/wizards/librarywizard.cpp b/src/plugins/qmakeprojectmanager/wizards/librarywizard.cpp
index b35b10311c..f509bdd877 100644
--- a/src/plugins/qmakeprojectmanager/wizards/librarywizard.cpp
+++ b/src/plugins/qmakeprojectmanager/wizards/librarywizard.cpp
@@ -56,7 +56,7 @@ LibraryWizard::LibraryWizard()
"<li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li>"
"<li>a shared or static C++ library for use with another project at linktime</li></ul>"));
setIcon(QIcon(QLatin1String(":/wizards/images/lib.png")));
- setRequiredFeatures(Core::FeatureSet(QtSupport::Constants::FEATURE_QT));
+ setRequiredFeatures(Core::FeatureSet(Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_PREFIX)));
}
Core::BaseFileWizard *LibraryWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
diff --git a/src/plugins/qmakeprojectmanager/wizards/subdirsprojectwizard.cpp b/src/plugins/qmakeprojectmanager/wizards/subdirsprojectwizard.cpp
index 01038647bf..3741e3c10c 100644
--- a/src/plugins/qmakeprojectmanager/wizards/subdirsprojectwizard.cpp
+++ b/src/plugins/qmakeprojectmanager/wizards/subdirsprojectwizard.cpp
@@ -51,7 +51,7 @@ SubdirsProjectWizard::SubdirsProjectWizard()
setDescription(tr("Creates a qmake-based subdirs project. This allows you to group "
"your projects in a tree structure."));
setIcon(QIcon(QLatin1String(":/wizards/images/gui.png")));
- setRequiredFeatures(Core::FeatureSet(QtSupport::Constants::FEATURE_QT));
+ setRequiredFeatures(Core::FeatureSet(Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_PREFIX)));
}
Core::BaseFileWizard *SubdirsProjectWizard::create(QWidget *parent,
diff --git a/src/plugins/qmakeprojectmanager/wizards/testwizard.cpp b/src/plugins/qmakeprojectmanager/wizards/testwizard.cpp
index 579f7f98ca..7aa03dc262 100644
--- a/src/plugins/qmakeprojectmanager/wizards/testwizard.cpp
+++ b/src/plugins/qmakeprojectmanager/wizards/testwizard.cpp
@@ -57,7 +57,7 @@ TestWizard::TestWizard()
"and that there are no regressions."));
setIcon(QIcon(QLatin1String(":/wizards/images/console.png")));
setRequiredFeatures(Core::Feature(QtSupport::Constants::FEATURE_QT_CONSOLE) |
- Core::Feature(QtSupport::Constants::FEATURE_QT));
+ Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_PREFIX));
}
Core::BaseFileWizard *TestWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
diff --git a/src/plugins/qmljstools/qmljsbundleprovider.cpp b/src/plugins/qmljstools/qmljsbundleprovider.cpp
index 760004caf7..78a7f78aef 100644
--- a/src/plugins/qmljstools/qmljsbundleprovider.cpp
+++ b/src/plugins/qmljstools/qmljsbundleprovider.cpp
@@ -131,9 +131,7 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
QString qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML");
Core::FeatureSet features = qtVersion->availableFeatures();
- if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK))
- || features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_1))
- || features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_1_1))) {
+ if (features.contains(Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_QUICK_PREFIX))) {
myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtImportsPath);
QDir qtQuick1Bundles(qtImportsPath);
qtQuick1Bundles.setNameFilters(QStringList(QLatin1String("*-bundle.json")));
@@ -158,7 +156,7 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
bundles.mergeBundleForLanguage(Dialect::Qml, qtQuick1Bundle);
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick1, qtQuick1Bundle);
}
- if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_2))) {
+ if (features.contains(Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_QUICK_PREFIX, 2))) {
myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtQmlPath);
QDir qtQuick2Bundles(qtQmlPath);
qtQuick2Bundles.setNameFilters(QStringList(QLatin1String("*-bundle.json")));
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 3363ca6a32..b4825cbf67 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -98,7 +98,24 @@ QtVersionNumber::QtVersionNumber()
FeatureSet QtVersionNumber::features() const
{
- return FeatureSet::versionedFeatures(Constants::FEATURE_QT, majorVersion, minorVersion);
+ return FeatureSet::versionedFeatures(Constants::FEATURE_QT_PREFIX, majorVersion, minorVersion);
+}
+
+bool QtVersionNumber::matches(int major, int minor, int patch) const
+{
+ if (major < 0)
+ return true;
+ if (major != majorVersion)
+ return false;
+
+ if (minor < 0)
+ return true;
+ if (minor != minorVersion)
+ return false;
+
+ if (patch < 0)
+ return true;
+ return (patch == patchVersion);
}
bool QtVersionNumber::operator <(const QtVersionNumber &b) const
@@ -355,59 +372,62 @@ FeatureSet BaseQtVersion::availableFeatures() const
{
FeatureSet features = qtVersion().features(); // Qt Version features
- features |= (FeatureSet(Constants::FEATURE_QWIDGETS)
- | FeatureSet(Constants::FEATURE_QT_WEBKIT)
- | FeatureSet(Constants::FEATURE_QT_CONSOLE));
+ features |= (Feature(Constants::FEATURE_QWIDGETS)
+ | Feature(Constants::FEATURE_QT_WEBKIT)
+ | Feature(Constants::FEATURE_QT_CONSOLE));
if (qtVersion() < QtVersionNumber(4, 7, 0))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_1);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 1, 0);
- if (qtVersion() < QtVersionNumber(4, 7, 1))
+ if (qtVersion().matches(4, 7, 0))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_1_1);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 1, 1);
- if (qtVersion() < QtVersionNumber(5, 0, 0))
+ if (qtVersion().matches(4))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2_0);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 0);
- if (qtVersion() < QtVersionNumber(5, 1, 0))
+ if (qtVersion().matches(5, 0))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2_1);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS_1);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS_1_0);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 1);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1, 0);
- if (qtVersion() < QtVersionNumber(5, 2, 0))
+ if (qtVersion().matches(5, 1))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2_2);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS_1_1);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 2);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1, 1);
- if (qtVersion() < QtVersionNumber(5, 3, 0))
+ if (qtVersion().matches(5, 2))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2_3);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS_1_2);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 3);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1, 2);
- if (qtVersion() < QtVersionNumber(5, 4, 0))
+ if (qtVersion().matches(5, 3))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_2_4);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_CONTROLS_1_3);
- features |= FeatureSet(Constants::FEATURE_QT_QUICK_UI_FILES);
+ features |= Feature(Constants::FEATURE_QT_QUICK_UI_FILES);
+
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 4);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1, 3);
- if (qtVersion() < QtVersionNumber(5, 5, 0))
+ if (qtVersion().matches(5, 4))
return features;
- features |= FeatureSet(Constants::FEATURE_QT_3D);
- features |= FeatureSet(Constants::FEATURE_QT_CANVAS3D);
+ features |= Feature(Constants::FEATURE_QT_3D);
+ features |= Feature(Constants::FEATURE_QT_CANVAS3D);
+
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_PREFIX, 2, 5);
+ features |= FeatureSet::versionedFeatures(Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1, 4);
+
+ if (qtVersion().matches(5, 5))
+ return features;
return features;
}
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index 1df47a217a..57d0aaaf69 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -73,6 +73,9 @@ public:
int majorVersion;
int minorVersion;
int patchVersion;
+
+ bool matches(int major = -1, int minor = -1, int patch = -1) const;
+
bool operator <(const QtVersionNumber &b) const;
bool operator <=(const QtVersionNumber &b) const;
bool operator >(const QtVersionNumber &b) const;
diff --git a/src/plugins/qtsupport/qtsupportconstants.h b/src/plugins/qtsupport/qtsupportconstants.h
index 38e0f0589f..4df20c25b0 100644
--- a/src/plugins/qtsupport/qtsupportconstants.h
+++ b/src/plugins/qtsupport/qtsupportconstants.h
@@ -50,24 +50,11 @@ static const char QTVERSIONID[] = "Id";
static const char QTVERSIONNAME[] = "Name";
//Qt Features
-const char FEATURE_QT[] = "QtSupport.Wizards.FeatureQt";
+const char FEATURE_QT_PREFIX[] = "QtSupport.Wizards.FeatureQt";
const char FEATURE_QWIDGETS[] = "QtSupport.Wizards.FeatureQWidgets";
-const char FEATURE_QT_QUICK[] = "QtSupport.Wizards.FeatureQtQuick";
+const char FEATURE_QT_QUICK_PREFIX[] = "QtSupport.Wizards.FeatureQtQuick";
const char FEATURE_QMLPROJECT[] = "QtSupport.Wizards.FeatureQtQuickProject";
-const char FEATURE_QT_QUICK_1[] = "QtSupport.Wizards.FeatureQtQuick.1";
-const char FEATURE_QT_QUICK_1_1[] = "QtSupport.Wizards.FeatureQtQuick.1.1";
-const char FEATURE_QT_QUICK_2[] = "QtSupport.Wizards.FeatureQtQuick.2";
-const char FEATURE_QT_QUICK_2_0[] = "QtSupport.Wizards.FeatureQtQuick.2.0";
-const char FEATURE_QT_QUICK_2_1[] = "QtSupport.Wizards.FeatureQtQuick.2.1";
-const char FEATURE_QT_QUICK_2_2[] = "QtSupport.Wizards.FeatureQtQuick.2.2";
-const char FEATURE_QT_QUICK_2_3[] = "QtSupport.Wizards.FeatureQtQuick.2.3";
-const char FEATURE_QT_QUICK_2_4[] = "QtSupport.Wizards.FeatureQtQuick.2.4";
-const char FEATURE_QT_QUICK_CONTROLS[] = "QtSupport.Wizards.FeatureQtQuick.Controls";
-const char FEATURE_QT_QUICK_CONTROLS_1[] = "QtSupport.Wizards.FeatureQtQuick.Controls.1";
-const char FEATURE_QT_QUICK_CONTROLS_1_0[] = "QtSupport.Wizards.FeatureQtQuick.Controls.1.0";
-const char FEATURE_QT_QUICK_CONTROLS_1_1[] = "QtSupport.Wizards.FeatureQtQuick.Controls.1.1";
-const char FEATURE_QT_QUICK_CONTROLS_1_2[] = "QtSupport.Wizards.FeatureQtQuick.Controls.1.2";
-const char FEATURE_QT_QUICK_CONTROLS_1_3[] = "QtSupport.Wizards.FeatureQtQuick.Controls.1.3";
+const char FEATURE_QT_QUICK_CONTROLS_PREFIX[] = "QtSupport.Wizards.FeatureQtQuick.Controls";
const char FEATURE_QT_QUICK_UI_FILES[] = "QtSupport.Wizards.FeatureQtQuick.UiFiles";
const char FEATURE_QT_WEBKIT[] = "QtSupport.Wizards.FeatureQtWebkit";
const char FEATURE_QT_3D[] = "QtSupport.Wizards.FeatureQt3d";
diff --git a/src/plugins/winrt/winrtqtversion.cpp b/src/plugins/winrt/winrtqtversion.cpp
index b49c8bff4e..07728e6845 100644
--- a/src/plugins/winrt/winrtqtversion.cpp
+++ b/src/plugins/winrt/winrtqtversion.cpp
@@ -69,7 +69,7 @@ Core::FeatureSet WinRtQtVersion::availableFeatures() const
Core::FeatureSet features = QtSupport::BaseQtVersion::availableFeatures();
features |= Core::FeatureSet(QtSupport::Constants::FEATURE_MOBILE);
features.remove(Core::Feature(QtSupport::Constants::FEATURE_QT_CONSOLE));
- features.remove(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_1));
+ features.remove(Core::Feature::versionedFeature(QtSupport::Constants::FEATURE_QT_QUICK_CONTROLS_PREFIX, 1));
features.remove(Core::Feature(QtSupport::Constants::FEATURE_QT_WEBKIT));
return features;
}