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;
     }    
 }