Mercurial > projects > qtd
comparison generator/dgenerator.cpp @ 303:98b211f3ee34 signals
fix for #19
author | eldar_ins@eldar-laptop |
---|---|
date | Sat, 12 Dec 2009 16:01:55 +0500 |
parents | 55ee4603365d |
children | 04b52676b45f |
comparison
equal
deleted
inserted
replaced
302:55ee4603365d | 303:98b211f3ee34 |
---|---|
2571 initArgs = "null"; | 2571 initArgs = "null"; |
2572 else | 2572 else |
2573 initArgs = "virt_arr.ptr"; | 2573 initArgs = "virt_arr.ptr"; |
2574 | 2574 |
2575 if (d_class->isQObject()) { | 2575 if (d_class->isQObject()) { |
2576 // qt_metacalls | 2576 // qt_metacall, metaObject |
2577 s << endl << INDENT << "void*[1] sign_arr;" << endl; | 2577 s << endl << INDENT << "void*[2] sign_arr;" << endl; |
2578 s << INDENT << "sign_arr[0] = &qtd_" << d_class->name() << "_qt_metacall_dispatch;" << endl; | 2578 s << INDENT << "sign_arr[0] = &qtd_" << d_class->name() << "_qt_metacall_dispatch;" << endl; |
2579 s << INDENT << "sign_arr[1] = &qtd_" << d_class->name() << "_metaObject_dispatch;" << endl; | |
2579 initArgs += ", sign_arr.ptr"; | 2580 initArgs += ", sign_arr.ptr"; |
2580 } | 2581 } |
2581 | 2582 |
2582 s << INDENT << "qtd_" << d_class->name() << QString("_initCallBacks(%1);").arg(initArgs) << endl; | 2583 s << INDENT << "qtd_" << d_class->name() << QString("_initCallBacks(%1);").arg(initArgs) << endl; |
2583 } | 2584 } |
2680 if (!d_class->isFinal()) | 2681 if (!d_class->isFinal()) |
2681 s << "private extern(C) int qtd_" << d_class->name() << "_qt_metacall(void* __this_nativeId, QMetaObject.Call _c, int _id, void **_a);" | 2682 s << "private extern(C) int qtd_" << d_class->name() << "_qt_metacall(void* __this_nativeId, QMetaObject.Call _c, int _id, void **_a);" |
2682 << "private extern(C) int qtd_" << d_class->name() << "_qt_metacall_dispatch(void *d_entity, QMetaObject.Call _c, int _id, void **_a) {" | 2683 << "private extern(C) int qtd_" << d_class->name() << "_qt_metacall_dispatch(void *d_entity, QMetaObject.Call _c, int _id, void **_a) {" |
2683 << " auto d_object = cast(" << d_class->name() << ") d_entity;" | 2684 << " auto d_object = cast(" << d_class->name() << ") d_entity;" |
2684 << " return d_object.qt_metacall(_c, _id, _a);" | 2685 << " return d_object.qt_metacall(_c, _id, _a);" |
2686 << "}" << endl << endl | |
2687 | |
2688 << "private extern(C) void* qtd_" << d_class->name() << "_metaObject_dispatch(void *d_entity) {" | |
2689 << " auto d_object = cast(" << d_class->name() << ") d_entity;" | |
2690 << " return d_object.metaObject().nativeId();" | |
2685 << "}" << endl << endl; | 2691 << "}" << endl << endl; |
2686 } | 2692 } |
2687 | 2693 |
2688 void writeMetaMethodSignatures(QTextStream &s, const QString &var_name, AbstractMetaFunctionList meta_funcs) | 2694 void writeMetaMethodSignatures(QTextStream &s, const QString &var_name, AbstractMetaFunctionList meta_funcs) |
2689 { | 2695 { |
2690 s << INDENT << "private static const string[] " << var_name << " = ["; | 2696 s << INDENT << "private static const string[] " << var_name << " = ["; |
2691 { | 2697 { |