Mercurial > projects > qtd
changeset 318:ce07227f00c1 signals
more signals and QList
author | eldar_ins@eldar-laptop |
---|---|
date | Thu, 24 Dec 2009 05:19:40 +0500 |
parents | 8a0cf14e3419 |
children | 894d40eb89b6 |
files | qt/core/QList.d qt/d2/qt/Signal.d qt/qtd/MetaMarshall.d |
diffstat | 3 files changed, 20 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/qt/core/QList.d Wed Dec 23 04:48:11 2009 +0500 +++ b/qt/core/QList.d Thu Dec 24 05:19:40 2009 +0500 @@ -440,7 +440,9 @@ node_construct(cast(Node*)(p.append()), cpy); } } - + + alias append opCatAssign; + static if (isQObjectType!T || isObjectType!T || isValueType!T || is(T == string)) { T at(int i) const
--- a/qt/d2/qt/Signal.d Wed Dec 23 04:48:11 2009 +0500 +++ b/qt/d2/qt/Signal.d Thu Dec 24 05:19:40 2009 +0500 @@ -323,7 +323,7 @@ res ~= "void*[" ~ __toString(Args.length+1) ~ "] _a = [null"; foreach(i, _; Args) - res ~= ", " ~ "cast(void*) &" ~ convertSignalArgument!(Args[i])("_t" ~ __toString(i)); + res ~= ", " ~ "cast(void*) " ~ convertSignalArgument!(Args[i])("_t" ~ __toString(i)); res ~= "];\n"; return res; }
--- a/qt/qtd/MetaMarshall.d Wed Dec 23 04:48:11 2009 +0500 +++ b/qt/qtd/MetaMarshall.d Thu Dec 24 05:19:40 2009 +0500 @@ -81,6 +81,8 @@ { static if (isQObjectType!T || isObjectType!T) return T.stringof ~ ".__getObject(*cast(void**)(" ~ ptr ~ "))"; + else static if (isValueType!T) + return "new " ~ T.stringof ~ "(" ~ T.stringof ~ ".__constructNativeCopy(" ~ ptr ~ "))"; else static if (isNativeType!T) return "*(cast(" ~ T.stringof ~ "*)" ~ ptr ~ ")"; else static if (isStringType!T) @@ -95,10 +97,18 @@ { static if (isQObjectType!T || isObjectType!T) return T.stringof ~ "*"; + else static if (isValueType!T) + return T.stringof; else static if (isStringType!T) return "QString"; else static if (isQList!T) - return "QList<" ~ qtDeclArg!(templateParam!T)() ~ ">"; + { + alias templateParam!T ElementType; + static if (is(ElementType == string)) + return "QStringList"; + else + return "QList<" ~ qtDeclArg!(templateParam!T)() ~ ">"; + } else static if (isNativeType!T) return Unqual!T.stringof; else @@ -109,13 +119,15 @@ string convertSignalArgument(T)(string arg) { static if (isQObjectType!T || isObjectType!T) + return "&" ~ arg ~ ".__nativeId"; + else static if (isValueType!T) return arg ~ ".__nativeId"; else static if (isStringType!T) - return "_qt" ~ arg; + return "&_qt" ~ arg; else static if (isNativeType!T) - return arg; + return "&" ~ arg; else - return arg; + return "&" ~ arg; } string prepareSignalArguments(Args...)()