diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2016-12-23 13:49:41 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-12-23 15:50:39 +0000 |
commit | d518178df885d2c58bf2ff5a1f45f1af8fd04ae4 (patch) | |
tree | 8b9eeb427fdfce106837a77dc000f29b528d2914 | |
parent | d25dc92af34d994e4f58f1a3edae7d5b856b49ff (diff) |
Add PropertyMapInternal::moduleProperty
Add a new convenience method PropertyMapInternal::moduleProperty
to access module properties without invoking the PropertyFinder
and use it where applicable.
Change-Id: Ie573c71516b25ed3159d6c86769baa6b058c0956
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/lib/corelib/api/projectdata.cpp | 6 | ||||
-rw-r--r-- | src/lib/corelib/api/runenvironment.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/jsextensions/moduleproperties.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/language/propertymapinternal.cpp | 8 | ||||
-rw-r--r-- | src/lib/corelib/language/propertymapinternal.h | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/tst_language.cpp | 33 |
6 files changed, 27 insertions, 27 deletions
diff --git a/src/lib/corelib/api/projectdata.cpp b/src/lib/corelib/api/projectdata.cpp index 4363a0ccf..94ae87c7a 100644 --- a/src/lib/corelib/api/projectdata.cpp +++ b/src/lib/corelib/api/projectdata.cpp @@ -43,7 +43,6 @@ #include <language/propertymapinternal.h> #include <tools/fileinfo.h> #include <tools/jsliterals.h> -#include <tools/propertyfinder.h> #include <tools/qbsassert.h> #include <QDir> @@ -818,8 +817,7 @@ QVariant PropertyMap::getProperty(const QString &name) const QStringList PropertyMap::getModulePropertiesAsStringList(const QString &moduleName, const QString &propertyName) const { - const QVariantList &vl = Internal::PropertyFinder().propertyValue(d->m_map->value(), moduleName, - propertyName).toList(); + const QVariantList &vl = d->m_map->moduleProperty(moduleName, propertyName).toList(); QStringList sl; foreach (const QVariant &v, vl) { QBS_ASSERT(v.canConvert<QString>(), continue); @@ -834,7 +832,7 @@ QStringList PropertyMap::getModulePropertiesAsStringList(const QString &moduleNa QVariant PropertyMap::getModuleProperty(const QString &moduleName, const QString &propertyName) const { - return Internal::PropertyFinder().propertyValue(d->m_map->value(), moduleName, propertyName); + return d->m_map->moduleProperty(moduleName, propertyName); } static QString mapToString(const QVariantMap &map, const QString &prefix) diff --git a/src/lib/corelib/api/runenvironment.cpp b/src/lib/corelib/api/runenvironment.cpp index fc9525a82..3316f9fab 100644 --- a/src/lib/corelib/api/runenvironment.cpp +++ b/src/lib/corelib/api/runenvironment.cpp @@ -241,8 +241,7 @@ int RunEnvironment::doRunTarget(const QString &targetBin, const QStringList &arg bundlePath += QLatin1Char('/') + installDir; } - const QString bundleName = PropertyFinder().propertyValue( - d->resolvedProduct->moduleProperties->value(), + const QString bundleName = d->resolvedProduct->moduleProperties->moduleProperty( QLatin1String("bundle"), QLatin1String("bundleName")).toString(); bundlePath += QLatin1Char('/') + bundleName; diff --git a/src/lib/corelib/jsextensions/moduleproperties.cpp b/src/lib/corelib/jsextensions/moduleproperties.cpp index 279cc29f0..b8477fe7b 100644 --- a/src/lib/corelib/jsextensions/moduleproperties.cpp +++ b/src/lib/corelib/jsextensions/moduleproperties.cpp @@ -45,7 +45,6 @@ #include <language/scriptengine.h> #include <logging/translator.h> #include <tools/error.h> -#include <tools/propertyfinder.h> #include <QScriptEngine> @@ -127,7 +126,7 @@ QScriptValue ModuleProperties::moduleProperty(QScriptContext *context, QScriptEn if (qbsEngine->isPropertyCacheEnabled()) value = qbsEngine->retrieveFromPropertyCache(moduleName, propertyName, properties); if (!value.isValid()) { - value = PropertyFinder().propertyValue(properties->value(), moduleName, propertyName); + value = properties->moduleProperty(moduleName, propertyName); const Property p(moduleName, propertyName, value); if (artifact) qbsEngine->addPropertyRequestedFromArtifact(artifact, p); diff --git a/src/lib/corelib/language/propertymapinternal.cpp b/src/lib/corelib/language/propertymapinternal.cpp index d1b202fce..453bfed73 100644 --- a/src/lib/corelib/language/propertymapinternal.cpp +++ b/src/lib/corelib/language/propertymapinternal.cpp @@ -67,9 +67,15 @@ PropertyMapInternal::PropertyMapInternal(const PropertyMapInternal &other) { } +QVariant PropertyMapInternal::moduleProperty(const QString &moduleName, + const QString &key) const +{ + return PropertyFinder().propertyValue(value(), moduleName, key); +} + QVariant PropertyMapInternal::qbsPropertyValue(const QString &key) const { - return PropertyFinder().propertyValue(value(), QLatin1String("qbs"), key); + return moduleProperty(QLatin1String("qbs"), key); } void PropertyMapInternal::setValue(const QVariantMap &map) diff --git a/src/lib/corelib/language/propertymapinternal.h b/src/lib/corelib/language/propertymapinternal.h index b4948d964..380738563 100644 --- a/src/lib/corelib/language/propertymapinternal.h +++ b/src/lib/corelib/language/propertymapinternal.h @@ -54,6 +54,7 @@ public: PropertyMapPtr clone() const { return PropertyMapPtr(new PropertyMapInternal(*this)); } const QVariantMap &value() const { return m_value; } + QVariant moduleProperty(const QString &moduleName, const QString &key) const; QVariant qbsPropertyValue(const QString &key) const; // Convenience function. void setValue(const QVariantMap &value); QString toJSLiteral() const; diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp index dc70d45fb..cafc7d42d 100644 --- a/src/lib/corelib/language/tst_language.cpp +++ b/src/lib/corelib/language/tst_language.cpp @@ -653,8 +653,8 @@ void TestLanguage::exports() QVERIFY(propertyValues.at(1).toString().endsWith("/subdir/lib")); QVERIFY(propertyValues.at(2).toString().endsWith("/subdir2/lib")); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", - "productName").toString(), QString("myapp")); + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "productName").toString(), + QString("myapp")); product = products.value("mylib"); QVERIFY(product); @@ -696,24 +696,24 @@ void TestLanguage::exports() propertyName = QStringList() << "modules" << "dummy" << "defines"; propertyValue = getConfigProperty(product->moduleProperties->value(), propertyName); QCOMPARE(propertyValue.toStringList(), QStringList() << "ABC"); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", - "productName").toString(), QString("myapp2")); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "productName").toString(), + QString("myapp2")); + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "upperCaseProductName").toString(), QString("MYAPP2")); // Check whether we're returning incorrect cached values. product = products.value("myapp3"); QVERIFY(product); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", - "productName").toString(), QString("myapp3")); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "productName").toString(), + QString("myapp3")); + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "upperCaseProductName").toString(), QString("MYAPP3")); // Verify we refer to the right "project" variable. product = products.value("sub p2"); QVERIFY(product); - QCOMPARE(PropertyFinder().propertyValue(product->moduleProperties->value(), "dummy", - "someString").toString(), QString("sub1")); + QCOMPARE(product->moduleProperties->moduleProperty("dummy", "someString").toString(), + QString("sub1")); product = products.value("libE"); QVERIFY(product); @@ -1199,8 +1199,7 @@ void TestLanguage::moduleProperties() const QString productName = QString::fromLocal8Bit(QTest::currentDataTag()); ResolvedProductPtr product = products.value(productName); QVERIFY(product); - QVariant values = PropertyFinder().propertyValue(product->moduleProperties->value(), - "dummy", propertyName); + QVariant values = product->moduleProperties->moduleProperty("dummy", propertyName); QStringList valueStrings; foreach (const QVariant &v, values.toList()) valueStrings += v.toString(); @@ -1518,8 +1517,7 @@ void TestLanguage::nonRequiredProducts() QCOMPARE(dependeeEnabled, dependee->enabled); const ResolvedProductConstPtr depender = products.value("depender"); QVERIFY(depender); - const QStringList defines = PropertyFinder() - .propertyValue(depender->moduleProperties->value(), "dummy", "defines") + const QStringList defines = depender->moduleProperties->moduleProperty("dummy", "defines") .toStringList(); QCOMPARE(subProjectEnabled && dependeeEnabled, defines.contains("WITH_DEPENDEE")); @@ -1634,14 +1632,13 @@ void TestLanguage::profileValuesAndOverriddenValues() QHash<QString, ResolvedProductPtr> products = productsFromProject(project); ResolvedProductPtr product = products.value("product1"); QVERIFY(product); - PropertyFinder pf; QVariantList values; - values = pf.propertyValue(product->moduleProperties->value(), "dummy", "cxxFlags").toList(); + values = product->moduleProperties->moduleProperty("dummy", "cxxFlags").toList(); QCOMPARE(values.length(), 1); QCOMPARE(values.first().toString(), QString("IN_PROFILE")); - values = pf.propertyValue(product->moduleProperties->value(), "dummy", "defines").toList(); + values = product->moduleProperties->moduleProperty("dummy", "defines").toList(); QCOMPARE(values, QVariantList() << QLatin1String("IN_FILE") << QLatin1String("IN_PROFILE")); - values = pf.propertyValue(product->moduleProperties->value(), "dummy", "cFlags").toList(); + values = product->moduleProperties->moduleProperty("dummy", "cFlags").toList(); QCOMPARE(values.length(), 1); QCOMPARE(values.first().toString(), QString("OVERRIDDEN")); } catch (const ErrorInfo &e) { |