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