diff options
-rw-r--r-- | tests/testabstractmetatype.cpp | 4 | ||||
-rw-r--r-- | typesystem.cpp | 17 | ||||
-rw-r--r-- | typesystem.h | 2 |
3 files changed, 19 insertions, 4 deletions
diff --git a/tests/testabstractmetatype.cpp b/tests/testabstractmetatype.cpp index 17e5278a9..ed39ebc3b 100644 --- a/tests/testabstractmetatype.cpp +++ b/tests/testabstractmetatype.cpp @@ -38,7 +38,7 @@ void TestAbstractMetaType::testConstCharPtrType() AbstractMetaType* rtype = func->type(); // Test properties of const char* QVERIFY(rtype); - QCOMPARE(rtype->package(), QString()); + QCOMPARE(rtype->package(), QString("Foo")); QCOMPARE(rtype->name(), QString("char")); QVERIFY(rtype->isConstant()); QVERIFY(!rtype->isArray()); @@ -107,7 +107,7 @@ void TestAbstractMetaType::testCharType() AbstractMetaType* rtype = func->type(); // Test properties of const char* QVERIFY(rtype); - QCOMPARE(rtype->package(), QString()); + QCOMPARE(rtype->package(), QString("Foo")); QCOMPARE(rtype->name(), QString("char")); QVERIFY(!rtype->isConstant()); QVERIFY(!rtype->isArray()); diff --git a/typesystem.cpp b/typesystem.cpp index 8d52e7aaa..b99cf2fc7 100644 --- a/typesystem.cpp +++ b/typesystem.cpp @@ -568,6 +568,7 @@ bool Handler::startElement(const QString &, const QString &n, type->setCodeGeneration(m_generate); type->setTargetLangName(targetLangName); type->setTargetLangApiName(targetLangApiName); + type->setTargetLangPackage(m_defaultPackage); type->setDefaultConstructor(defaultConstructor); bool preferred; @@ -1725,6 +1726,20 @@ PrimitiveTypeEntry* PrimitiveTypeEntry::basicAliasedTypeEntry() const return m_aliasedTypeEntry; } +typedef QHash<const PrimitiveTypeEntry*, QString> PrimitiveTypeEntryTargetLangPackageMap; +Q_GLOBAL_STATIC(PrimitiveTypeEntryTargetLangPackageMap, primitiveTypeEntryTargetLangPackages); + +void PrimitiveTypeEntry::setTargetLangPackage(const QString& package) +{ + primitiveTypeEntryTargetLangPackages()->insert(this, package); +} +QString PrimitiveTypeEntry::targetLangPackage() const +{ + if (!primitiveTypeEntryTargetLangPackages()->contains(this)) + return this->::TypeEntry::targetLangPackage(); + return primitiveTypeEntryTargetLangPackages()->value(this); +} + CodeSnipList TypeEntry::codeSnips() const { return m_codeSnips; @@ -1742,13 +1757,11 @@ QString Modification::accessModifierString() const FunctionModificationList ComplexTypeEntry::functionModifications(const QString &signature) const { FunctionModificationList lst; - TypeDatabase *td = TypeDatabase::instance(); for (int i = 0; i < m_functionMods.count(); ++i) { const FunctionModification &mod = m_functionMods.at(i); if (mod.signature == signature) lst << mod; } - return lst; } diff --git a/typesystem.h b/typesystem.h index 3fcb241fd..abba4455c 100644 --- a/typesystem.h +++ b/typesystem.h @@ -1142,6 +1142,8 @@ public: m_preferredTargetLangType = b; } + void setTargetLangPackage(const QString& package); + QString targetLangPackage() const; private: QString m_targetLangName; QString m_targetLangApiName; |