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;