Mercurial > projects > qtd
comparison cpp/qt_gui/UrlHandler_shell.cpp @ 248:7664de4a55e5
Fixed #23.
QtD_QObjectEntity is not created dynamically for shell classes any more.
Class initialization is now performed by static constructors.
When wrapping QObjects returned from functions, their run-time types are now taken into account.
QObjects are allocated on GC heap, a doubly-linked list is used to prevent them from been collected (arguably a better solution than allocating on C heap and adding GC ranges)
Minor changes (including unnecessary).
author | maxter |
---|---|
date | Thu, 20 Aug 2009 14:47:17 +0000 |
parents | 846b89285e2b |
children | 37eed70de029 |
comparison
equal
deleted
inserted
replaced
247:27497bbe62a1 | 248:7664de4a55e5 |
---|---|
2 | 2 |
3 #include "qtd_core.h" | 3 #include "qtd_core.h" |
4 | 4 |
5 UrlHandler::UrlHandler(void *d_ptr, QObject* parent0) | 5 UrlHandler::UrlHandler(void *d_ptr, QObject* parent0) |
6 : QObject(parent0), | 6 : QObject(parent0), |
7 Qtd_QObjectEntity(d_ptr) | 7 QtD_QObjectEntity(this, d_ptr) |
8 { | 8 { |
9 } | 9 } |
10 | 10 |
11 #ifdef CPP_SHARED | 11 #ifdef CPP_SHARED |
12 extern "C" typedef void (*pfqtd_UrlHandler_handleUrl_QUrl_dispatch)(void *d_entity, void* arg__1); | 12 extern "C" typedef void (*pfqtd_UrlHandler_handleUrl_QUrl_dispatch)(void *dId, void* arg__1); |
13 pfqtd_UrlHandler_handleUrl_QUrl_dispatch qtd_UrlHandler_handleUrl_QUrl_dispatch; | 13 pfqtd_UrlHandler_handleUrl_QUrl_dispatch qtd_UrlHandler_handleUrl_QUrl_dispatch; |
14 #else | 14 #else |
15 extern "C" void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *d_entity, void* name1); | 15 extern "C" void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *dId, void* name1); |
16 #endif | 16 #endif |
17 void UrlHandler::handleUrl(const QUrl &url) | 17 void UrlHandler::handleUrl(const QUrl &url) |
18 { | 18 { |
19 qtd_UrlHandler_handleUrl_QUrl_dispatch(this->d_entity(), &(QUrl& )url); | 19 qtd_UrlHandler_handleUrl_QUrl_dispatch(this->dId, &(QUrl& )url); |
20 } | 20 } |
21 | 21 |
22 extern "C" DLL_PUBLIC void qtd_UrlHandler_destructor(void *ptr) | 22 extern "C" DLL_PUBLIC void qtd_UrlHandler_destructor(void *ptr) |
23 { | 23 { |
24 delete (UrlHandler *)ptr; | 24 delete (UrlHandler *)ptr; |