diff qt/core/QString.d @ 302:55ee4603365d signals

string arguments for signals
author eldar_ins@eldar-laptop
date Sat, 12 Dec 2009 03:22:54 +0500
parents 5173835bb372
children
line wrap: on
line diff
--- a/qt/core/QString.d	Tue Dec 08 21:13:24 2009 +0000
+++ b/qt/core/QString.d	Sat Dec 12 03:22:54 2009 +0500
@@ -13,30 +13,26 @@
 
 struct QString
 {
-    public static QString opCall(void* ptr, bool proxy) {
+    public static QString opCall()
+    {
         QString str;
-        str.__nativeId = ptr;
+        qtd_QString_placed_ctor(&str);
         return str;
     }
     
-    public void* __nativeId;
-    
-    public static final string toNativeString(void* qstring) {
-        wchar* arr = qtd_QString_utf16(qstring);
-        int size = qtd_QString_size(qstring);
-        return .toUTF8(arr[0..size]);
+    ~this()
+    {
+        qtd_QString_call_destructor(&this);
     }
     
-    public final string toNativeString() {
-        return toNativeString(__nativeId);
+    void opAssign(string str)
+    {
+        qtd_QString_assign_fromUtf8(&this, str);
     }
     
-    public void assign(string text) {
-        qtd_QString_operatorAssign(__nativeId, text);
-    }
-    
-    public static string fromUtf8(string source) {
-        return source;
+    this(string str)
+    {
+        qtd_QString_new_fromUtf8_at(&this, str);
     }
     
     public static void __constructPlacedQString(void* place, string source) {
@@ -67,6 +63,38 @@
         enum bool isPointer = false;
         enum bool isDummy = false;
     }
+    
+private:
+    void *dummy; // sizeof(QString) == sizeof(void*)
+}
+
+struct QStringUtil
+{
+    public static final string toNativeString(void* qstring) {
+        wchar* arr = qtd_QString_utf16(qstring);
+        int size = qtd_QString_size(qstring);
+        return .toUTF8(arr[0..size]);
+    }
+
+    public static string fromUtf8(string source) {
+        return source;
+    }
+
+    public static QStringUtil opCall(void* ptr, bool proxy) {
+        QStringUtil str;
+        str.__nativeId = ptr;
+        return str;
+    }
+    
+    public void* __nativeId;
+
+    public final string toNativeString() {
+        return QStringUtil.toNativeString(__nativeId);
+    }
+    
+    public void assign(string text) {
+        qtd_QString_operatorAssign(__nativeId, text);
+    }
 }
 private extern(C) void* qtd_QString_placed_copy(const void* orig, void* place);
 
@@ -78,4 +106,7 @@
 private extern (C) wchar* qtd_QString_utf16(void* __this_nativeId);
 private extern (C) int qtd_QString_size(void* __this_nativeId);
 private extern (C) void qtd_QString_operatorAssign(void* __this_nativeId, string text);
-private extern (C) void qtd_QString_new_fromUtf8_at(void* place, string text);
\ No newline at end of file
+private extern (C) void* qtd_QString_new_fromUtf8_at(void* place, string text);
+
+private extern (C) void qtd_QString_placed_ctor(void* place);
+private extern (C) void qtd_QString_assign_fromUtf8(QString *__qt_this, string text);
\ No newline at end of file