comparison cpp/qt_qtd/qtd_core.cpp @ 257:17b5e13364b7 lifetime

(none)
author maxter
date Wed, 16 Sep 2009 13:56:02 +0000
parents 073b9153ed8a
children 2049c3abd348
comparison
equal deleted inserted replaced
256:b1abe7f57321 257:17b5e13364b7
9 * 9 *
10 */ 10 */
11 11
12 #include "qtd_core.h" 12 #include "qtd_core.h"
13 #include <iostream> 13 #include <iostream>
14 #include <QCryptographicHash>
14 15
16 extern "C" DLL_PUBLIC void* qtd_test_Object()
17 {
18 return new QCryptographicHash(QCryptographicHash::Md5);
19 }
15 20
16 extern "C" DLL_PUBLIC void* qtd_qobject(void* parent) 21 extern "C" DLL_PUBLIC void qtd_test_delete_Object(void* obj)
17 { 22 {
18 return new QObject((QObject*)parent); 23 delete (QCryptographicHash*)obj;
19 } 24 }
20 25
21 extern "C" DLL_PUBLIC QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia) 26 extern "C" DLL_PUBLIC QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia)
22 { 27 {
23 return * (QModelIndex *) (&mia) ; 28 return * (QModelIndex *) (&mia) ;
46 } 51 }
47 52
48 #ifdef CPP_SHARED 53 #ifdef CPP_SHARED
49 QTD_EXPORT_VAR(qtd_toUtf8); 54 QTD_EXPORT_VAR(qtd_toUtf8);
50 QTD_EXPORT_VAR(qtd_dummy); 55 QTD_EXPORT_VAR(qtd_dummy);
56 QTD_EXPORT_VAR(qtd_delete_d_object);
51 57
52 extern "C" DLL_PUBLIC void qtd_core_initCallBacks(pfunc_abstr d_func, pfunc_abstr dummy) { 58 extern "C" DLL_PUBLIC void qtd_core_initCallBacks(pfunc_abstr d_func, pfunc_abstr dummy
59 , pfunc_abstr del_d_obj) {
53 QTD_EXPORT_VAR_SET(qtd_toUtf8, d_func); 60 QTD_EXPORT_VAR_SET(qtd_toUtf8, d_func);
54 QTD_EXPORT_VAR_SET(qtd_dummy, dummy); 61 QTD_EXPORT_VAR_SET(qtd_dummy, dummy);
62 QTD_EXPORT_VAR_SET(qtd_delete_d_object, del_d_obj);
55 //std::cout << "qtd_core initialized" << std::endl; 63 //std::cout << "qtd_core initialized" << std::endl;
56 } 64 }
57 #endif 65 #endif
58 66
59 extern bool qRegisterResourceData 67 extern bool qRegisterResourceData
71 extern "C" DLL_PUBLIC bool qtd_unregister_resource_data(int version, const unsigned char *tree, 79 extern "C" DLL_PUBLIC bool qtd_unregister_resource_data(int version, const unsigned char *tree,
72 const unsigned char *name, const unsigned char *data) 80 const unsigned char *name, const unsigned char *data)
73 { 81 {
74 return qUnregisterResourceData(version, tree, name, data); 82 return qUnregisterResourceData(version, tree, name, data);
75 } 83 }
84
85
86 QtD_QObjectEntity::QtD_QObjectEntity(QObject *qObject, void *dId) : QtD_Entity(dId)
87 {
88 qObject->setUserData(userDataId, this);
89 }
90
91 QtD_QObjectEntity::~QtD_QObjectEntity()
92 {
93 if (dId)
94 destroyEntity();
95 }
96
97 void QtD_QObjectEntity::destroyEntity(QObject *qObject)
98 {
99 Q_ASSERT(dId);
100 qtd_delete_d_object(dId);
101 if (qObject)
102 {
103 qObject->setUserData(userDataId, NULL);
104 dId = NULL;
105 }
106 }
107
108 QtD_QObjectEntity* QtD_QObjectEntity::getQObjectEntity(const QObject *qObject)
109 {
110 return static_cast<QtD_QObjectEntity*>(qObject->userData(userDataId));
111 }