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