diff options
| author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-07-29 12:38:16 +0200 |
|---|---|---|
| committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-07-29 11:45:26 +0000 |
| commit | 42cb5aced15115416c8e9bcdc16566eade9d26a4 (patch) | |
| tree | 373124191c27d2b1c39cdd0ae173da6557281689 | |
| parent | 4e68a684c6af02ff0885f845767fbff98b5ab106 (diff) | |
| download | qbs-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.cpp | 5 | ||||
| -rw-r--r-- | src/lib/corelib/language/item.h | 1 | ||||
| -rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 14 | ||||
| -rw-r--r-- | src/lib/corelib/language/moduleloader.h | 1 |
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); |
