Mercurial > projects > qtd
comparison generator/cppheadergenerator.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 | 1349940724eb |
children | 37eed70de029 |
comparison
equal
deleted
inserted
replaced
247:27497bbe62a1 | 248:7664de4a55e5 |
---|---|
176 return ; | 176 return ; |
177 } | 177 } |
178 | 178 |
179 s << "class " << shellClassName(java_class) | 179 s << "class " << shellClassName(java_class) |
180 << " : public " << java_class->qualifiedCppName(); | 180 << " : public " << java_class->qualifiedCppName(); |
181 if (java_class->hasVirtualFunctions()) | 181 if (java_class->isQObject()) |
182 s << ", public Qtd_QObjectEntity"; | 182 s << ", public QtD_QObjectEntity"; |
183 else if(java_class->hasVirtualFunctions()) | |
184 s << ", public QtD_Entity"; | |
183 s << endl << "{" << endl; | 185 s << endl << "{" << endl; |
184 | 186 |
185 if (java_class->isQObject()) { | 187 if (java_class->isQObject()) { |
186 s << "public:" << endl | 188 s << "public:" << endl |
187 << " Q_OBJECT_CHECK" << endl; | 189 << " Q_OBJECT_CHECK" << endl |
188 // << " mutable const QMetaObject *m_meta_object;" << endl; | 190 // << " mutable const QMetaObject *m_meta_object;" << endl; |
189 | 191 |
190 /* if (java_class->hasVirtualSlots()) { | 192 /* if (java_class->hasVirtualSlots()) { |
191 s << " mutable QHash<int,int> m_map;" << endl; | 193 s << " mutable QHash<int,int> m_map;" << endl; |
192 } | 194 } |
193 */ | 195 */ |
194 // s << " const QMetaObject *metaObject() const;" << endl | 196 // s << " const QMetaObject *metaObject() const;" << endl |
195 // << " void *qt_metacast(const char *);" << endl | 197 // << " void *qt_metacast(const char *);" << endl |
196 // << " QT_TR_FUNCTIONS" << endl | 198 // << " QT_TR_FUNCTIONS" << end |
197 // << " virtual int qt_metacall(QMetaObject::Call, int, void **);" << endl | 199 << " virtual int qt_metacall(QMetaObject::Call, int, void **);" << endl |
198 s << "private:" << endl; | 200 << "private:" << endl; |
199 } | 201 } |
200 | 202 |
201 | 203 |
202 s << "public:" << endl; | 204 s << "public:" << endl; |
203 // constructor | 205 // constructor |