diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-07-28 03:32:16 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:05 -0300 |
commit | 767e21c15eb9a400fb43eda35fa3aea01330e8b6 (patch) | |
tree | de4b755763a7d4875fcd7cf2c1c83af0e0321d1e /generator | |
parent | f50a2b5841d63ddaef3195a29bfe3e07de91157a (diff) |
More readable code on CppGenerator::writeVirtualMethodNative() method.
Diffstat (limited to 'generator')
-rw-r--r-- | generator/cppgenerator.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index 9687b02dc..20d99f257 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -862,28 +862,24 @@ void CppGenerator::writeVirtualMethodNative(QTextStream &s, const AbstractMetaFu CodeSnipList convRule = getReturnConversionRule(TypeSystem::NativeCode, func, "", CPP_RETURN_VAR); writeCodeSnips(s, convRule, CodeSnip::Any, TypeSystem::NativeCode, func); } else if (!injectedCodeHasReturnValueAttribution(func, TypeSystem::NativeCode)) { - s << INDENT; - QString protectedEnumName; - if (avoidProtectedHack()) { + QString conversion; + QTextStream c(&conversion); + writeToCppConversion(c, func->type(), func->implementingClass(), PYTHON_RETURN_VAR); + QString typeName; + if (avoidProtectedHack() && func->type()->isEnum()) { const AbstractMetaEnum* metaEnum = findAbstractMetaEnum(func->type()); bool isProtectedEnum = metaEnum && metaEnum->isProtected(); if (isProtectedEnum) { - protectedEnumName = metaEnum->name(); if (metaEnum->enclosingClass()) - protectedEnumName = metaEnum->enclosingClass()->qualifiedCppName() + "::" + protectedEnumName; - s << protectedEnumName; + typeName = QString("%1::").arg(metaEnum->enclosingClass()->qualifiedCppName()); + typeName += metaEnum->name(); + conversion.prepend(typeName+'('); + conversion.append(')'); } } - if (protectedEnumName.isEmpty()) - s << translateTypeForWrapperMethod(func->type(), func->implementingClass()); - s << " " CPP_RETURN_VAR "("; - if (avoidProtectedHack() && !protectedEnumName.isEmpty()) - s << protectedEnumName << '('; - writeToCppConversion(s, func->type(), func->implementingClass(), PYTHON_RETURN_VAR); - if (avoidProtectedHack() && !protectedEnumName.isEmpty()) - s << ')'; - s << ')'; - s << ';' << endl; + if (typeName.isEmpty()) + typeName = translateTypeForWrapperMethod(func->type(), func->implementingClass()); + s << INDENT << typeName << " " CPP_RETURN_VAR " = " << conversion << ';' << endl; } } } |