Mercurial > projects > qtd
comparison generator/typesystem_core.xml @ 355:08c1ca7975ab
obviated redundant virtual dispatch callbacks
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Tue, 25 May 2010 17:23:11 +0300 |
parents | 18bd68f586c6 |
children | 12cec2d14e1c |
comparison
equal
deleted
inserted
replaced
354:18bd68f586c6 | 355:08c1ca7975ab |
---|---|
2363 <object-type name="QObject"> | 2363 <object-type name="QObject"> |
2364 <inject-code class="native"> | 2364 <inject-code class="native"> |
2365 | 2365 |
2366 extern "C" DLL_PUBLIC void* qtd_get_d_qobject(void *nativeId) | 2366 extern "C" DLL_PUBLIC void* qtd_get_d_qobject(void *nativeId) |
2367 { | 2367 { |
2368 QtD_QObjectEntity *entity = QtD_QObjectEntity::getQObjectEntity((QObject*)nativeId); | 2368 return QObjectEntity::getDId((QObject*)nativeId); |
2369 return entity ? entity->dId : NULL; | |
2370 } | 2369 } |
2371 | 2370 |
2372 extern "C" DLL_PUBLIC void qtd_create_qobject_entity(void* nativeId, void *dId) | 2371 extern "C" DLL_PUBLIC void qtd_create_qobject_entity(void* nativeId, void *dId) |
2373 { | 2372 { |
2374 new QtD_QObjectEntity((QObject*)nativeId, dId); | 2373 new QObjectLink((QObject*)nativeId, dId); |
2375 } | 2374 } |
2376 | 2375 |
2377 extern "C" DLL_PUBLIC void* qtd_QObject_metaObject(void* nativeId) | 2376 extern "C" DLL_PUBLIC void* qtd_QObject_metaObject(void* nativeId) |
2378 { | 2377 { |
2379 return (void*)((QObject*)nativeId)->metaObject(); | 2378 return (void*)((QObject*)nativeId)->metaObject(); |
2380 } | 2379 } |
2381 | 2380 |
2381 <!-- | |
2382 extern "C" DLL_PUBLIC void qtd_connect(void* nativeId, char* signal, int id, bool dynamicEntity) | 2382 extern "C" DLL_PUBLIC void qtd_connect(void* nativeId, char* signal, int id, bool dynamicEntity) |
2383 { | 2383 { |
2384 QObject *sender = (QObject*)nativeId; | 2384 QObject *sender = (QObject*)nativeId; |
2385 QObject *receiver = dynamicEntity ? dynamic_cast<QObject*>(QtD_QObjectEntity::getQObjectEntity(sender)) : sender; | 2385 QObject *receiver = dynamicEntity ? dynamic_cast<QObject*>(QObject::getQObjectEntity(sender)) : sender; |
2386 const QMetaObject *mo = sender->metaObject(); | 2386 const QMetaObject *mo = sender->metaObject(); |
2387 int nativeSigId = mo->indexOfSignal(signal); | 2387 int nativeSigId = mo->indexOfSignal(signal); |
2388 QMetaObject::connect(sender, nativeSigId, receiver, receiver->metaObject()->methodCount() + id); | 2388 QMetaObject::connect(sender, nativeSigId, receiver, receiver->metaObject()->methodCount() + id); |
2389 } | 2389 } |
2390 | 2390 |
2394 QObject *receiver = dynamicEntity ? dynamic_cast<QObject*>(QtD_QObjectEntity::getQObjectEntity(sender)) : sender; | 2394 QObject *receiver = dynamicEntity ? dynamic_cast<QObject*>(QtD_QObjectEntity::getQObjectEntity(sender)) : sender; |
2395 const QMetaObject *mo = sender->metaObject(); | 2395 const QMetaObject *mo = sender->metaObject(); |
2396 int nativeSigId = mo->indexOfSignal(signal); | 2396 int nativeSigId = mo->indexOfSignal(signal); |
2397 QMetaObject::disconnect(sender, nativeSigId, receiver, receiver->metaObject()->methodCount() + id); | 2397 QMetaObject::disconnect(sender, nativeSigId, receiver, receiver->metaObject()->methodCount() + id); |
2398 } | 2398 } |
2399 --> | |
2399 | 2400 |
2400 </inject-code> | 2401 </inject-code> |
2401 | 2402 |
2402 <inject-code class="java-free"> | 2403 <inject-code class="java-free"> |
2403 extern(C) void* qtd_get_d_qobject(void* nativeId); | 2404 extern(C) void* qtd_get_d_qobject(void* nativeId); |