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