diff options
author | Luciano Wolf <luciano.wolf@openbossa.org> | 2009-09-22 17:36:00 -0300 |
---|---|---|
committer | Luciano Wolf <luciano.wolf@openbossa.org> | 2009-09-22 17:51:57 -0300 |
commit | 6b9a6c30cb4899d7536dfae7e74413f7d6cf897b (patch) | |
tree | 69d2aaac53867c87e6ffcec91e71d50f6071b8bf /shibokengenerator.cpp | |
parent | 0581436081ef69ae62c51d4bb53c03cb9e6adefb (diff) |
Fix QTextCodec and QTextCodec::ConverterState generation:
- Fix function names containing "::" (such as QTextCodec);
- Fix wrong method naming while generating CPython code;
- Fix inner classes code generation.
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r-- | shibokengenerator.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp index fdb03b6b1..22cc3de50 100644 --- a/shibokengenerator.cpp +++ b/shibokengenerator.cpp @@ -177,15 +177,11 @@ QString ShibokenGenerator::wrapperName(const AbstractMetaClass* metaClass) QString ShibokenGenerator::cpythonFunctionName(const AbstractMetaFunction* func) { - QString result = QLatin1String("Py"); + QString result; if (func->ownerClass()) { - result += func->ownerClass()->name(); - if (func->ownerClass()->enclosingClass()) // is a inner class - result.replace("::", "_"); - + result = cpythonBaseName(func->ownerClass()->typeEntry()); result += '_'; - if (func->isConstructor() || func->isCopyConstructor()) result += "New"; else if (func->isOperatorOverload()) @@ -193,7 +189,7 @@ QString ShibokenGenerator::cpythonFunctionName(const AbstractMetaFunction* func) else result += func->name(); } else { - result += moduleName() + "Module_" + func->name(); + result = "Py" + moduleName() + "Module_" + func->name(); } return result; @@ -319,7 +315,7 @@ QString ShibokenGenerator::cpythonBaseName(const AbstractMetaType* type) QString ShibokenGenerator::cpythonBaseName(const TypeEntry* type) { QString baseName; - if ((type->isObject() || type->isValue())) { // && !type->isReference()) { + if ((type->isObject() || type->isValue() || type->isNamespace())) { // && !type->isReference()) { baseName = QString("Py") + type->name(); } else if (type->isPrimitive()) { const PrimitiveTypeEntry* ptype = (const PrimitiveTypeEntry*) type; @@ -363,7 +359,12 @@ QString ShibokenGenerator::cpythonBaseName(const TypeEntry* type) } else { baseName = "PyObject"; } - return baseName; + return baseName.replace("::", "_"); +} + +QString ShibokenGenerator::cpythonTypeName(const AbstractMetaClass* metaClass) +{ + return cpythonTypeName(metaClass->typeEntry()); } QString ShibokenGenerator::cpythonTypeName(const TypeEntry* type) |