Mercurial > projects > qtd
diff qt/d2/qt/core/QVariant.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 | 37eed70de029 |
line wrap: on
line diff
--- a/qt/d2/qt/core/QVariant.d Fri Jul 31 11:05:22 2009 +0000 +++ b/qt/d2/qt/core/QVariant.d Thu Aug 20 14:47:17 2009 +0000 @@ -1,7 +1,7 @@ module qt.core.QVariant; public import qt.QGlobal; -private import qt.QtDObject; +private import qt.QtdObject; private import qt.core.QMetaType; // automatic imports------------- @@ -27,7 +27,7 @@ import std.string; -public class QVariant : QtDObject +public class QVariant : QtdObject { enum Type { Invalid = 0, @@ -87,7 +87,7 @@ LastType = 0xffffffff // need this so that gcc >= 3.4 allocates 32 bits for Type } - + // Functions private template getMetaId() @@ -97,7 +97,7 @@ if(i <= 0) i = qRegisterMetaType!(T)(name);"; } - + static public QVariant fromValue(T)(T obj) { QVariant var; @@ -125,7 +125,7 @@ } return var; } - + static public QVariant opCall(T)(T obj) { return fromValue(obj); @@ -138,7 +138,7 @@ public this(QDataStream s) { - void* __qt_return_value = qtd_QVariant_QVariant_QDataStream(s is null ? null : s.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QDataStream(s is null ? null : s.__nativeId); super(__qt_return_value); } @@ -156,25 +156,25 @@ public this(QBitArray bitarray) { - void* __qt_return_value = qtd_QVariant_QVariant_QBitArray(bitarray is null ? null : bitarray.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QBitArray(bitarray is null ? null : bitarray.__nativeId); super(__qt_return_value); } public this(QByteArray bytearray) { - void* __qt_return_value = qtd_QVariant_QVariant_QByteArray(bytearray is null ? null : bytearray.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QByteArray(bytearray is null ? null : bytearray.__nativeId); super(__qt_return_value); } public this(QDate date) { - void* __qt_return_value = qtd_QVariant_QVariant_QDate(date is null ? null : date.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QDate(date is null ? null : date.__nativeId); super(__qt_return_value); } public this(QDateTime datetime) { - void* __qt_return_value = qtd_QVariant_QVariant_QDateTime(datetime is null ? null : datetime.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QDateTime(datetime is null ? null : datetime.__nativeId); super(__qt_return_value); } @@ -198,7 +198,7 @@ public this(QLocale locale) { - void* __qt_return_value = qtd_QVariant_QVariant_QLocale(locale is null ? null : locale.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QLocale(locale is null ? null : locale.__nativeId); super(__qt_return_value); } @@ -228,7 +228,7 @@ public this(QRegExp regExp) { - void* __qt_return_value = qtd_QVariant_QVariant_QRegExp(regExp is null ? null : regExp.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QRegExp(regExp is null ? null : regExp.__nativeId); super(__qt_return_value); } @@ -246,19 +246,19 @@ public this(QTime time) { - void* __qt_return_value = qtd_QVariant_QVariant_QTime(time is null ? null : time.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QTime(time is null ? null : time.__nativeId); super(__qt_return_value); } public this(QUrl url) { - void* __qt_return_value = qtd_QVariant_QVariant_QUrl(url is null ? null : url.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QUrl(url is null ? null : url.__nativeId); super(__qt_return_value); } public this(QVariant other) { - void* __qt_return_value = qtd_QVariant_QVariant_QVariant(other is null ? null : other.nativeId); + void* __qt_return_value = qtd_QVariant_QVariant_QVariant(other is null ? null : other.__nativeId); super(__qt_return_value); } @@ -308,7 +308,7 @@ { int i = qtd_MetatypeId(toStringz(name)); assert(i > 0); - return qtd_QVariant_canConvert(nativeId, i); + return qtd_QVariant_canConvert(__nativeId, i); } public final bool canConvert(Type)() { @@ -353,58 +353,58 @@ else static if ( is(Type == QTime) ) return canConvertImpl("QTime"); else static if ( is(Type == uint) ) - return canConvertImpl("unsigned int"); // TODO: + return canConvertImpl("unsigned int"); // TODO: else static if ( is(Type == ulong) ) - return canConvertImpl("unsigned long long"); // TODO: + return canConvertImpl("unsigned long long"); // TODO: else static if ( is(Type == QUrl) ) return canConvertImpl("QUrl"); else { static if( is( Type == class ) || is( Type == interface ) ) { - Object object = cast(Object)qtd_QVariant_data(nativeId); + Object object = cast(Object)qtd_QVariant_data(__nativeId); if(object) return cast(Type)(object) !is null; return false; } else static if (isDynamicArrayType!(Type) || isStaticArrayType!(Type) ) { - auto array = cast(DArrayToC*)qtd_QVariant_data(nativeId); + auto array = cast(DArrayToC*)qtd_QVariant_data(__nativeId); return cast(Type)(array.array) !is null; } else { int i = qtd_MetatypeId(toStringz(typeid(Type).toString)); - return qtd_QVariant_canConvert(nativeId, i); + return qtd_QVariant_canConvert(__nativeId, i); } } } public final Type value(Type)() { static if ( is(Type == QBitArray) ) - return toBitArra; + return toBitArra; else static if ( is(Type == bool) ) - return toBool; + return toBool; else static if ( is(Type == QByteArray) ) - return toByteArray; + return toByteArray; else static if ( is(Type == QDate) ) - return toDate; + return toDate; else static if ( is(Type == QDateTime) ) - return toDateTime; + return toDateTime; else static if ( is(Type == double) ) - return toDouble; + return toDouble; else static if ( is(Type == int) ) - return toInt; + return toInt; else static if ( is(Type == QLine) ) - return toLine; + return toLine; else static if ( is(Type == QLineF) ) - return toLineF; + return toLineF; else static if ( is(Type == QLocale) ) - return toLocale; + return toLocale; else static if ( is(Type == long) ) - return toLongLong; + return toLongLong; else static if ( is(Type == QPoint) ) - return toPoint; + return toPoint; else static if ( is(Type == QPointF) ) return toPointF; else static if ( is(Type == QRect) ) @@ -429,194 +429,188 @@ return toUrl; else static if( is( Type == class ) || is( Type == interface ) ) { - Object object = cast(Object)qtd_QVariant_data(nativeId); + Object object = cast(Object)qtd_QVariant_data(__nativeId); if(object) return cast(Type)(object); return null; } else static if (isDynamicArrayType!(Type) || isStaticArrayType!(Type) ) { - auto array = cast(DArrayToC*)qtd_QVariant_data(nativeId); + auto array = cast(DArrayToC*)qtd_QVariant_data(__nativeId); return cast(Type)(array.array); } else { - return *cast(Type*)qtd_QVariant_data(nativeId); + return *cast(Type*)qtd_QVariant_data(__nativeId); } } public final void clear() { - qtd_QVariant_clear(nativeId); + qtd_QVariant_clear(__nativeId); } protected final bool cmp(QVariant other) { - return qtd_QVariant_cmp_QVariant(nativeId, other is null ? null : other.nativeId); + return qtd_QVariant_cmp_QVariant(__nativeId, other is null ? null : other.__nativeId); } protected final void create(int type, void* copy) { - qtd_QVariant_create_int_nativepointervoid(nativeId, type, copy); + qtd_QVariant_create_int_nativepointervoid(__nativeId, type, copy); } public final bool isNull() { - return qtd_QVariant_isNull(nativeId); + return qtd_QVariant_isNull(__nativeId); } public final bool isValid() { - return qtd_QVariant_isValid(nativeId); + return qtd_QVariant_isValid(__nativeId); } public final void load(QDataStream ds) { - qtd_QVariant_load_QDataStream(nativeId, ds is null ? null : ds.nativeId); + qtd_QVariant_load_QDataStream(__nativeId, ds is null ? null : ds.__nativeId); } public final void writeTo(QDataStream s) { - qtd_QVariant_writeTo_QDataStream(nativeId, s is null ? null : s.nativeId); + qtd_QVariant_writeTo_QDataStream(__nativeId, s is null ? null : s.__nativeId); } public final QVariant operator_assign(QVariant other) { - void* __qt_return_value = qtd_QVariant_operator_assign_QVariant(nativeId, other is null ? null : other.nativeId); - return new QVariant(__qt_return_value, true); + void* __qt_return_value = qtd_QVariant_operator_assign_QVariant(__nativeId, other is null ? null : other.__nativeId); + return new QVariant(__qt_return_value, QtdObjectFlags.nativeOwnership); } private final bool operator_equal(QVariant v) { - return qtd_QVariant_operator_equal_QVariant(nativeId, v is null ? null : v.nativeId); + return qtd_QVariant_operator_equal_QVariant(__nativeId, v is null ? null : v.__nativeId); } public final void readFrom(QDataStream s) { - qtd_QVariant_readFrom_QDataStream(nativeId, s is null ? null : s.nativeId); + qtd_QVariant_readFrom_QDataStream(__nativeId, s is null ? null : s.__nativeId); } public final void save(QDataStream ds) { - qtd_QVariant_save_QDataStream(nativeId, ds is null ? null : ds.nativeId); + qtd_QVariant_save_QDataStream(__nativeId, ds is null ? null : ds.__nativeId); } public final QBitArray toBitArray() { - void* __qt_return_value = qtd_QVariant_toBitArray(nativeId); - return new QBitArray(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toBitArray(__nativeId); + return new QBitArray(__qt_return_value); } public final bool toBool() { - return qtd_QVariant_toBool(nativeId); + return qtd_QVariant_toBool(__nativeId); } public final QByteArray toByteArray() { - void* __qt_return_value = qtd_QVariant_toByteArray(nativeId); - return new QByteArray(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toByteArray(__nativeId); + return new QByteArray(__qt_return_value); } public final QDate toDate() { - void* __qt_return_value = qtd_QVariant_toDate(nativeId); - return new QDate(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toDate(__nativeId); + return new QDate(__qt_return_value); } public final QDateTime toDateTime() { - void* __qt_return_value = qtd_QVariant_toDateTime(nativeId); - return new QDateTime(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toDateTime(__nativeId); + return new QDateTime(__qt_return_value); } public final double toDouble(bool* ok = null) { - return qtd_QVariant_toDouble_nativepointerbool(nativeId, ok); + return qtd_QVariant_toDouble_nativepointerbool(__nativeId, ok); } public final int toInt(bool* ok = null) { - return qtd_QVariant_toInt_nativepointerbool(nativeId, ok); + return qtd_QVariant_toInt_nativepointerbool(__nativeId, ok); } public final QLine toLine() { - return qtd_QVariant_toLine(nativeId); + return qtd_QVariant_toLine(__nativeId); } public final QLineF toLineF() { - return qtd_QVariant_toLineF(nativeId); + return qtd_QVariant_toLineF(__nativeId); } public final QLocale toLocale() { - void* __qt_return_value = qtd_QVariant_toLocale(nativeId); - return new QLocale(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toLocale(__nativeId); + return new QLocale(__qt_return_value); } public final long toLongLong(bool* ok = null) { - return qtd_QVariant_toLongLong_nativepointerbool(nativeId, ok); + return qtd_QVariant_toLongLong_nativepointerbool(__nativeId, ok); } public final QPoint toPoint() { - return qtd_QVariant_toPoint(nativeId); + return qtd_QVariant_toPoint(__nativeId); } public final QPointF toPointF() { - return qtd_QVariant_toPointF(nativeId); + return qtd_QVariant_toPointF(__nativeId); } public final QRect toRect() { - return qtd_QVariant_toRect(nativeId); + return qtd_QVariant_toRect(__nativeId); } public final QRectF toRectF() { - return qtd_QVariant_toRectF(nativeId); + return qtd_QVariant_toRectF(__nativeId); } public final QRegExp toRegExp() { - void* __qt_return_value = qtd_QVariant_toRegExp(nativeId); - return new QRegExp(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toRegExp(__nativeId); + return new QRegExp(__qt_return_value); } public final QSize toSize() { - return qtd_QVariant_toSize(nativeId); + return qtd_QVariant_toSize(__nativeId); } public final QSizeF toSizeF() { - return qtd_QVariant_toSizeF(nativeId); + return qtd_QVariant_toSizeF(__nativeId); } public final string toString() { string res; - qtd_QVariant_toString(nativeId, &res); + qtd_QVariant_toString(__nativeId, &res); return res; } public final QTime toTime() { - void* __qt_return_value = qtd_QVariant_toTime(nativeId); - return new QTime(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toTime(__nativeId); + return new QTime(__qt_return_value); } public final uint toUInt(bool* ok = null) { - return qtd_QVariant_toUInt_nativepointerbool(nativeId, ok); + return qtd_QVariant_toUInt_nativepointerbool(__nativeId, ok); } public final ulong toULongLong(bool* ok = null) { - return qtd_QVariant_toULongLong_nativepointerbool(nativeId, ok); + return qtd_QVariant_toULongLong_nativepointerbool(__nativeId, ok); } public final QUrl toUrl() { - void* __qt_return_value = qtd_QVariant_toUrl(nativeId); - return new QUrl(__qt_return_value, false); + void* __qt_return_value = qtd_QVariant_toUrl(__nativeId); + return new QUrl(__qt_return_value); } public final char* typeName() { - return qtd_QVariant_typeName(nativeId); + return qtd_QVariant_typeName(__nativeId); } - + public final Type type() { - return cast(Type)qtd_QVariant_type(nativeId); + return cast(Type)qtd_QVariant_type(__nativeId); } public final int userType() { - return qtd_QVariant_userType(nativeId); + return qtd_QVariant_userType(__nativeId); } // Field accessors - public this(void* native_id, bool no_real_delete = false) { - super(native_id, no_real_delete); + public this(void* native_id, QtdObjectFlags flags = QtdObjectFlags.none) { + super(native_id, flags); } - - ~this() { - if(!__no_real_delete) - __free_native_resources(); - } - - protected void __free_native_resources() { - qtd_QVariant_destructor(nativeId()); + protected override void __deleteNative() { + qtd_QVariant_destructor(__nativeId); } // Injected code in class