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 {