Mercurial > projects > qtd
view qt/core/QString.d @ 248:7664de4a55e5
Fixed #23.
QtD_QObjectEntity is not created dynamically for shell classes any more.
Class initialization is now performed by static constructors.
When wrapping QObjects returned from functions, their run-time types are now taken into account.
QObjects are allocated on GC heap, a doubly-linked list is used to prevent them from been collected (arguably a better solution than allocating on C heap and adding GC ranges)
Minor changes (including unnecessary).
author | maxter |
---|---|
date | Thu, 20 Aug 2009 14:47:17 +0000 |
parents | 7dd099050621 |
children | 5173835bb372 |
line wrap: on
line source
module qt.core.QString; import qt.QGlobal; version (Tango) { public import tango.text.convert.Utf : toUTF8 = toString; } else { public import std.utf : toUTF8; } struct QString { public static QString opCall(void* ptr, bool proxy) { QString str; str.native_id = ptr; return str; } private void* native_id; 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 final string toNativeString() { return toNativeString(native_id); } public void assign(string text) { __qtd_QString_operatorAssign(native_id, text); } public static string fromUtf8(string source) { return source; } /* public static string fromUtf16(wstring src) { version(Tango) }*/ } 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);