diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-07-11 11:07:14 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:15:28 -0300 |
commit | 4f608fdc057642f2d84276458a6444e9eff79bd2 (patch) | |
tree | d49d46b5401800b12158a0b2981d248c9c1c25a2 /generator | |
parent | 6032293a4f357ccccd57ea96bb74b55254faed59 (diff) |
Fix enum qMetaType register.
fix bug #886.
Reviewer: Hugo Parente <hugo.lima@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/cppgenerator.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index 387a275cb..2e8285675 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3754,14 +3754,14 @@ void CppGenerator::writeInitQtMetaTypeFunctionBody(QTextStream& s, const Abstrac s << INDENT << "qRegisterMetaType< ::" << className << " >(\"" << name << "\");" << endl; } } + foreach (AbstractMetaEnum* metaEnum, metaClass->enums()) { if (!metaEnum->isPrivate() && !metaEnum->isAnonymous()) { - QString n = className + "::" + metaEnum->name(); foreach (QString name, nameVariants) - s << INDENT << "qRegisterMetaType< ::" << n << " >(\"" << name << "::" << metaEnum->name() << "\");" << endl; + s << INDENT << "qRegisterMetaType< ::" << metaEnum->typeEntry()->qualifiedCppName() << " >(\"" << name << "::" << metaEnum->name() << "\");" << endl; if (metaEnum->typeEntry()->flags()) { - n = metaEnum->typeEntry()->flags()->originalName(); + QString n = metaEnum->typeEntry()->flags()->originalName(); s << INDENT << "qRegisterMetaType< ::" << n << " >(\"" << n << "\");" << endl; } } @@ -4168,8 +4168,9 @@ void CppGenerator::finishGeneration() if (usePySideExtensions()) { foreach (AbstractMetaEnum* metaEnum, globalEnums) - if (!metaEnum->isAnonymous()) - s << INDENT << "qRegisterMetaType< ::" << metaEnum->name() << " >(\"" << metaEnum->name() << "\");" << endl; + if (!metaEnum->isAnonymous()) { + s << INDENT << "qRegisterMetaType< ::" << metaEnum->typeEntry()->qualifiedCppName() << " >(\"" << metaEnum->name() << "\");" << endl; + } // cleanup staticMetaObject attribute s << INDENT << "PySide::registerCleanupFunction(cleanTypesAttributes);" << endl; |