comparison qt/core/QMetaObject.d @ 260:b5773ccab07d lifetime

closer
author maxter
date Fri, 18 Sep 2009 18:52:03 +0000
parents 515d6e1c7b10
children
comparison
equal deleted inserted replaced
259:515d6e1c7b10 260:b5773ccab07d
5 import qt.QtdObject; 5 import qt.QtdObject;
6 6
7 /++ 7 /++
8 Meta-object for QObject classes. 8 Meta-object for QObject classes.
9 +/ 9 +/
10 final class QMetaObject : MetaObject 10 final class QMetaObject : QtdMetaObjectBase
11 { 11 {
12 alias typeof(this) This; 12 alias typeof(this) This;
13 13
14 private void* _nativeId; 14 private void* _nativeId;
15 15
55 result = cast(QObject)qtd_get_d_qobject(nativeObjId); 55 result = cast(QObject)qtd_get_d_qobject(nativeObjId);
56 if (!result) 56 if (!result)
57 { 57 {
58 auto moId = qtd_QObject_metaObject(nativeObjId); 58 auto moId = qtd_QObject_metaObject(nativeObjId);
59 if (_nativeId == moId) 59 if (_nativeId == moId)
60 result = _createWrapper(nativeObjId, flags); 60 result = static_cast!(QObject)(_createWrapper(nativeObjId, flags));
61 else 61 else
62 { 62 {
63 // get native metaobjects for the entire derivation lattice 63 // get native metaobjects for the entire derivation lattice
64 // up to, but not including, the current metaobject. 64 // up to, but not including, the current metaobject.
65 size_t moCount = 1; 65 size_t moCount = 1;
79 79
80 moIds[--moCount] = moId; 80 moIds[--moCount] = moId;
81 while (moCount > 0) 81 while (moCount > 0)
82 moIds[--moCount] = moId = qtd_QMetaObject_superClass(moId); 82 moIds[--moCount] = moId = qtd_QMetaObject_superClass(moId);
83 83
84 result = lookupDerived(moIds)._createWrapper(nativeObjId, flags); 84 auto mo = lookupDerived(moIds);
85 result = static_cast!(QObject)(mo._createWrapper(nativeObjId, flags));
85 } 86 }
86 } 87 }
87 } 88 }
88 89
89 return result; 90 return result;