From 4f608fdc057642f2d84276458a6444e9eff79bd2 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Mon, 11 Jul 2011 11:07:14 -0300 Subject: Fix enum qMetaType register. fix bug #886. Reviewer: Hugo Parente Luciano Wolf --- generator/cppgenerator.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'generator') 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; -- cgit v1.2.3