diff options
-rw-r--r-- | cppgenerator.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp index d02af3db6..3577d46e5 100644 --- a/cppgenerator.cpp +++ b/cppgenerator.cpp @@ -134,6 +134,9 @@ void CppGenerator::generateClass(QTextStream &s, const AbstractMetaClass *metaCl // headers s << "// default includes" << endl; s << "#include <shiboken.h>" << endl; + if (usePySideExtensions()) + s << "#include <qsignal.h>" << endl; + s << "#include <typeresolver.h>\n"; s << "#include <typeinfo>\n"; if (usePySideExtensions()) { @@ -596,7 +599,7 @@ void CppGenerator::writeMetaObjectMethod(QTextStream& s, const AbstractMetaClass << INDENT << "if (!typeData) {" << endl; { Indentation indentation2(INDENT); - s << INDENT << "m_metaObject = PySide::DynamicQMetaObject::createBasedOn(pySelf->ob_type, &" + s << INDENT << "m_metaObject = PySide::DynamicQMetaObject::createBasedOn(pySelf, pySelf->ob_type, &" << metaClass->qualifiedCppName() << "::staticMetaObject);" << endl << INDENT << "Shiboken::setTypeUserData(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pySelf), m_metaObject, PySide::deleteDynamicQMetaObject);" << endl; } @@ -739,6 +742,13 @@ void CppGenerator::writeConstructorWrapper(QTextStream& s, const AbstractMetaFun s << '}' << endl; } + s << endl; + + if (metaClass->isQObject()) { + s << INDENT << "cptr->metaObject();" << endl; + if (usePySideExtensions()) + s << INDENT << "PySide::signal_update_source(self);" << endl; + } s << endl << INDENT << "return 1;" << endl; if (overloadData.maxArgs() > 0) writeErrorSection(s, overloadData); |