summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-29 12:38:16 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-29 11:45:26 +0000
commit42cb5aced15115416c8e9bcdc16566eade9d26a4 (patch)
tree373124191c27d2b1c39cdd0ae173da6557281689
parent4e68a684c6af02ff0885f845767fbff98b5ab106 (diff)
downloadqbs-42cb5aced15115416c8e9bcdc16566eade9d26a4.tar.gz
Move copyProperty() to the Item class.
This is needed by a follow-up patch. It also seems sensible in general. Change-Id: If3604ecf83564c9439faec88d7134f3e5efed113 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r--src/lib/corelib/language/item.cpp5
-rw-r--r--src/lib/corelib/language/item.h1
-rw-r--r--src/lib/corelib/language/moduleloader.cpp14
-rw-r--r--src/lib/corelib/language/moduleloader.h1
4 files changed, 10 insertions, 11 deletions
diff --git a/src/lib/corelib/language/item.cpp b/src/lib/corelib/language/item.cpp
index fa2668078..116c811b3 100644
--- a/src/lib/corelib/language/item.cpp
+++ b/src/lib/corelib/language/item.cpp
@@ -215,6 +215,11 @@ void Item::setupForBuiltinType(Logger &logger)
}
}
+void Item::copyProperty(const QString &propertyName, Item *target) const
+{
+ target->setProperty(propertyName, property(propertyName));
+}
+
static const char *valueType(const Value *v)
{
switch (v->type()) {
diff --git a/src/lib/corelib/language/item.h b/src/lib/corelib/language/item.h
index 708a92c82..4c86a977b 100644
--- a/src/lib/corelib/language/item.h
+++ b/src/lib/corelib/language/item.h
@@ -122,6 +122,7 @@ public:
void dump() const;
bool isPresentModule() const;
void setupForBuiltinType(Logger &logger);
+ void copyProperty(const QString &propertyName, Item *target) const;
void setDelayedError(const ErrorInfo &e) { m_delayedError = e; }
ErrorInfo delayedError() const { return m_delayedError; }
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index d45d1f669..5b2ded6d3 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -1261,8 +1261,8 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor
QBS_CHECK(instanceScope->file());
moduleScope->setFile(instanceScope->file());
moduleScope->setScope(instanceScope);
- copyProperty(QLatin1String("project"), productContext->project->scope, moduleScope);
- copyProperty(QLatin1String("product"), productContext->scope, moduleScope);
+ productContext->project->scope->copyProperty(QLatin1String("project"), moduleScope);
+ productContext->scope->copyProperty(QLatin1String("product"), moduleScope);
if (isProduct) {
exportingProduct = 0;
@@ -1497,7 +1497,7 @@ void ModuleLoader::copyProperties(const Item *sourceProject, Item *targetProject
= targetProject->property(it.key()).dynamicCast<const JSSourceValue>();
QBS_ASSERT(v, continue);
if (v->sourceCode() == QLatin1String("undefined"))
- copyProperty(it.key(), sourceProject, targetProject);
+ sourceProject->copyProperty(it.key(), targetProject);
continue;
}
@@ -1508,7 +1508,7 @@ void ModuleLoader::copyProperties(const Item *sourceProject, Item *targetProject
continue; // Ignore stuff the target project already has.
targetProject->setPropertyDeclaration(it.key(), it.value());
- copyProperty(it.key(), sourceProject, targetProject);
+ sourceProject->copyProperty(it.key(), targetProject);
}
}
@@ -1536,12 +1536,6 @@ QString ModuleLoader::findExistingModulePath(const QString &searchPath,
return dirPath;
}
-void ModuleLoader::copyProperty(const QString &propertyName, const Item *source,
- Item *destination)
-{
- destination->setProperty(propertyName, source->property(propertyName));
-}
-
void ModuleLoader::setScopeForDescendants(Item *item, Item *scope)
{
foreach (Item *child, item->children()) {
diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h
index 853a0d9ad..855b68d7d 100644
--- a/src/lib/corelib/language/moduleloader.h
+++ b/src/lib/corelib/language/moduleloader.h
@@ -225,7 +225,6 @@ private:
Item *wrapWithProject(Item *item);
static QString findExistingModulePath(const QString &searchPath,
const QualifiedId &moduleName);
- static void copyProperty(const QString &propertyName, const Item *source, Item *destination);
static void setScopeForDescendants(Item *item, Item *scope);
void overrideItemProperties(Item *item, const QString &buildConfigKey,
const QVariantMap &buildConfig);