Mercurial > projects > qtd
diff qt/d1/qt/QtdObject.d @ 260:b5773ccab07d lifetime
closer
author | maxter |
---|---|
date | Fri, 18 Sep 2009 18:52:03 +0000 |
parents | 515d6e1c7b10 |
children | 8f7bb7fc3123 |
line wrap: on
line diff
--- a/qt/d1/qt/QtdObject.d Thu Sep 17 16:28:41 2009 +0000 +++ b/qt/d1/qt/QtdObject.d Fri Sep 18 18:52:03 2009 +0000 @@ -99,10 +99,15 @@ } -abstract class QtdMetaObject : MetaObject +abstract class QtdMetaObjectBase : MetaObject { QtdObjectBase function(void* nativeId, QtdObjectFlags flags) _createWrapper; + this(QtdMetaObjectBase base) + { + super(base); + } + void construct(T : QtdObject, Concrete = T)() { super.construct!(T); @@ -113,7 +118,7 @@ /++ Meta-object for polymorphic Qt classes. +/ -final class QtdMetaObject : MetaObject +final class QtdMetaObject : QtdMetaObjectBase { alias typeof(this) This; @@ -143,7 +148,7 @@ } } - return _createWrapper(nativeId, flags); + return static_cast!(QtdObject)(_createWrapper(nativeId, flags)); } } @@ -273,7 +278,7 @@ { debug(QtdVerbose) __print("In QtdObject destructor"); - if (__prev || __root is this)d + if (__prev || __root is this) __unpin; } }