Mercurial > projects > qtd
changeset 394:92be7d54716e
Adapted QVariant.fromValue to D2 so that it at least compiles.
I am not sure if the code is really correct, though.
author | David Nadlinger <code@klickverbot.at> |
---|---|
date | Sat, 28 Aug 2010 03:15:31 +0200 |
parents | 1049b01aebd2 |
children | d757b8b1ca75 |
files | d2/qt/core/QVariant.d |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/d2/qt/core/QVariant.d Sat Aug 28 02:55:55 2010 +0200 +++ b/d2/qt/core/QVariant.d Sat Aug 28 03:15:31 2010 +0200 @@ -25,7 +25,8 @@ private import qt.core.QLocale; import std.string; - +import std.traits : isDynamicArray, isStaticArray; +import std.range : ElementType; public class QVariant : QtdObject { @@ -90,13 +91,13 @@ // Functions - private int getMetaId(T)(string name) + static private int getMetaId(T)(string name) { static shared int sharedId; static int id; if (id == 0) { - synchronized(qtdMoLock) + synchronized { if (sharedId == 0) sharedId = qRegisterMetaType!T(name); @@ -115,9 +116,9 @@ // TODO: Still hacky. No need to pass name to id getter. var = new QVariant(getMetaId!T(name), cast(void*)(obj)); } - else static if (isDynamicArrayType!(T) || isStaticArrayType!(T) ) + else static if (isDynamicArray!(T) || isStaticArray!(T) ) { - string name = typeid(ElementTypeOfArray!(T)).toString ~ "[]"; + string name = typeid(ElementType!(T)).toString ~ "[]"; auto darray = new DArrayToC; darray.array = obj.dup; var = new QVariant(getMetaId!T(name), cast(void*)(darray));