Mercurial > projects > qtd
diff d2/qt/core/QMetaType.d @ 357:9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Q_CLASSINFO implementation
Now Qtd can be built on Windows
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Wed, 02 Jun 2010 19:38:05 +0300 |
parents | 96a75b1e5b26 |
children | a032df77b6ab |
line wrap: on
line diff
--- a/d2/qt/core/QMetaType.d Tue May 25 20:14:04 2010 +0300 +++ b/d2/qt/core/QMetaType.d Wed Jun 02 19:38:05 2010 +0300 @@ -2,13 +2,6 @@ public import qt.core.Qt; private import qt.core.QDataStream; -version (Tango) -{ - import tango.core.Array; - import tango.stdc.stringz; - import tango.core.Traits; -} - alias extern(C) void *function(void *copy) Ctor; alias extern(C) void function(void *obj) Dtor; alias extern(C) void function(void *stream, void * object) StreamOp; @@ -45,7 +38,7 @@ return cast(void*)data; } } - + extern(C) void dtor(void* obj) { @@ -65,7 +58,7 @@ public int qRegisterMetaType(T)(string name = null) { if (!name.length) - name = typeid(T).toString; + name = typeid(T).toString; return qtd_registerType(toStringz(name), &MetaTypeOps!(T).ctor, &MetaTypeOps!(T).dtor); } @@ -86,20 +79,20 @@ static void function (ref QDataStream, ref T) LoadOp; SaveOp = saveOp; LoadOp = loadOp; - + if (!name.length) - name = typeid(T).toString; - + name = typeid(T).toString; + extern(C) void saveOpC(void *stream, void *object) { QDataStream dstream = new DataStreamPriv(stream); Stdout(object).newline; static if (is(T == class) || is(T == interface)) - SaveOp(dstream, cast(T)object); - else + SaveOp(dstream, cast(T)object); + else SaveOp(dstream, *cast(T*)object); } - + extern(C) void loadOpC(void *stream, void *object) { //return stream;