aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2016-12-23 13:49:41 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2016-12-23 15:50:39 +0000
commitd518178df885d2c58bf2ff5a1f45f1af8fd04ae4 (patch)
tree8b9eeb427fdfce106837a77dc000f29b528d2914
parentd25dc92af34d994e4f58f1a3edae7d5b856b49ff (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.cpp6
-rw-r--r--src/lib/corelib/api/runenvironment.cpp3
-rw-r--r--src/lib/corelib/jsextensions/moduleproperties.cpp3
-rw-r--r--src/lib/corelib/language/propertymapinternal.cpp8
-rw-r--r--src/lib/corelib/language/propertymapinternal.h1
-rw-r--r--src/lib/corelib/language/tst_language.cpp33
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) {