Mercurial > projects > qtd
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 } |