Mercurial > projects > qtd
diff generator/cppimplgenerator.cpp @ 303:98b211f3ee34 signals
fix for #19
author | eldar_ins@eldar-laptop |
---|---|
date | Sat, 12 Dec 2009 16:01:55 +0500 |
parents | 4d8481385c71 |
children | 04b52676b45f |
line wrap: on
line diff
--- a/generator/cppimplgenerator.cpp Sat Dec 12 03:22:54 2009 +0500 +++ b/generator/cppimplgenerator.cpp Sat Dec 12 16:01:55 2009 +0500 @@ -506,8 +506,10 @@ } } // D-side signal callbacks - if (java_class->isQObject()) - s << " qtd_" << java_class->name() << "_qt_metacall_dispatch = (QtMetacallCallback)sigs[0];" << endl; + if (java_class->isQObject()) { + s << " qtd_" << java_class->name() << "_qt_metacall_dispatch = (QtMetacallCallback)sigs[0];" << endl + << " qtd_" << java_class->name() << "_metaObject_dispatch = (MetaObjectCallback)sigs[1];" << endl; + } s << "}" << endl; } @@ -1350,11 +1352,18 @@ */ if(cpp_shared) - s << "QtMetacallCallback qtd_" << java_class->name() << "_qt_metacall_dispatch;" << endl; + s << "MetaObjectCallback qtd_" << java_class->name() << "_metaObject_dispatch;" << endl + << "QtMetacallCallback qtd_" << java_class->name() << "_qt_metacall_dispatch;" << endl; else - s << "extern \"C\" int qtd_" << java_class->name() << "_qt_metacall_dispatch(void *d_entity, QMetaObject::Call _c, int _id, void **_a);" << endl << endl; - - s << "int " << shellClassName(java_class) << "::qt_metacall(QMetaObject::Call _c, int _id, void **_a)" << endl + s << "extern \"C\" const QMetaObject* qtd_" << java_class->name() << "_metaObject_dispatch(void *d_entity);" << endl + << "extern \"C\" int qtd_" << java_class->name() << "_qt_metacall_dispatch(void *d_entity, QMetaObject::Call _c, int _id, void **_a);" << endl; + + s << endl + << "const QMetaObject * " << shellClassName(java_class) << "::metaObject() const" << endl + << "{" << endl + << " return qtd_" << java_class->name() << "_metaObject_dispatch(this->dId);" << endl + << "}" << endl << endl + << "int " << shellClassName(java_class) << "::qt_metacall(QMetaObject::Call _c, int _id, void **_a)" << endl << "{" << endl << " return qtd_" << java_class->name() << "_qt_metacall_dispatch(this->dId, _c, _id, _a);" << endl << "}" << endl << endl