From 663722bb984b9ea03714036f9c1b6f91f4a5931a Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Tue, 15 Mar 2011 16:18:52 -0300 Subject: Fix bug 706 - "dataChanged signal raise an incorrect TypeError" Now we directly call qRegisterType for all types. Reviewer: Marcelo Lira Luciano Wolf --- generator/cppgenerator.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'generator/cppgenerator.cpp') diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index a8bb9ce18..52a2abff5 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3499,8 +3499,18 @@ void CppGenerator::writeInitQtMetaTypeFunctionBody(QTextStream& s, const Abstrac const QString className = metaClass->qualifiedCppName(); if (!metaClass->isNamespace()) { // Qt metatypes are registered only on their first use, so we do this now. - const char* star = metaClass->typeEntry()->isObject() ? "*" : ""; - s << INDENT << "PySide::initQtMetaType< ::" << className << star << " >();" << endl; + const char* star = "*"; + if (!metaClass->typeEntry()->isObject()) { + // check if there's a empty ctor + foreach (AbstractMetaFunction* func, metaClass->functions()) { + if (func->isConstructor() && !func->arguments().count()) { + star = ""; + break; + } + } + } + + s << INDENT << "qRegisterMetaType< ::" << className << star << " >(\"" << className << star << "\");" << endl; } foreach (AbstractMetaEnum* metaEnum, metaClass->enums()) { if (!metaEnum->isPrivate() && !metaEnum->isAnonymous()) { -- cgit v1.2.3