Mercurial > projects > qtd
changeset 307:91ed8edd442e signals
work on QStringList
author | eldar_ins@eldar-laptop |
---|---|
date | Wed, 23 Dec 2009 04:02:28 +0500 |
parents | 04b52676b45f |
children | 2485419c5c63 |
files | generator/abstractmetalang.cpp generator/dgenerator.cpp generator/typesystem_core.xml generator/typesystem_gui.xml generator/typesystem_phonon.xml generator/typesystem_xmlpatterns.xml qt/qtd/MetaMarshall.d |
diffstat | 7 files changed, 37 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/generator/abstractmetalang.cpp Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/abstractmetalang.cpp Wed Dec 23 04:02:28 2009 +0500 @@ -1905,10 +1905,13 @@ if (isConstant()) minimalSignature += "const "; minimalSignature += typeEntry()->qualifiedCppName(); - if (hasInstantiations()) { + if (hasInstantiations() && + (static_cast<const ContainerTypeEntry *>(typeEntry()))->type() != ContainerTypeEntry::StringListContainer) + { QList<AbstractMetaType *> instantiations = this->instantiations(); minimalSignature += "<"; - for (int i=0;i<instantiations.size();++i) { + for (int i=0;i<instantiations.size();++i) + { if (i > 0) minimalSignature += ","; minimalSignature += instantiations.at(i)->minimalSignature();
--- a/generator/dgenerator.cpp Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/dgenerator.cpp Wed Dec 23 04:02:28 2009 +0500 @@ -2708,7 +2708,7 @@ bool hasDefault = false; do // need this to look for default arguments and generate extra signatures { - if (i || j) + if (j) s << ", "; s << endl << INDENT << " \"" << meta_funcs.at(i)->minimalSignature(j) << "\""; AbstractMetaArgumentList args = meta_funcs.at(i)->arguments();
--- a/generator/typesystem_core.xml Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/typesystem_core.xml Wed Dec 23 04:02:28 2009 +0500 @@ -2290,7 +2290,7 @@ <reference-count action="set" variable-name="__rcStandardOutputProcess"/> </modify-argument> </modify-function> -<!-- <modify-function signature="startDetached(QString,QStringList<QString>,QString,long long*)"> +<!-- <modify-function signature="startDetached(QString,QStringList,QString,long long*)"> <access modifier="private"/> <modify-argument index="4"> <remove-default-expression/>
--- a/generator/typesystem_gui.xml Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/typesystem_gui.xml Wed Dec 23 04:02:28 2009 +0500 @@ -4868,7 +4868,7 @@ <access modifier="private" /> </modify-function> - <modify-function signature="getItem(QWidget *, const QString &, const QString &, const QStringList<QString> &, int, bool, bool *, QFlags<Qt::WindowType>)"> + <modify-function signature="getItem(QWidget *, const QString &, const QString &, const QStringList &, int, bool, bool *, QFlags<Qt::WindowType>)"> <rename to="getItem_private"/> <access modifier="private"/> </modify-function> @@ -5375,7 +5375,7 @@ <define-ownership class="java" owner="c++"/> </modify-argument> </modify-function> - <modify-function signature="QTreeWidgetItem(QTreeWidget *,const QStringList<QString> &,int)"> + <modify-function signature="QTreeWidgetItem(QTreeWidget *,const QStringList &,int)"> <modify-argument index="this"> <define-ownership class="java" owner="c++"/> </modify-argument> @@ -5390,7 +5390,7 @@ <define-ownership class="java" owner="c++"/> </modify-argument> </modify-function> - <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,const QStringList<QString> &,int)"> + <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,const QStringList &,int)"> <modify-argument index="this"> <define-ownership class="java" owner="c++"/> </modify-argument> @@ -5509,9 +5509,9 @@ <!-- <modify-function signature="addItem(const QString &)" remove="all"/>--> - <modify-function signature="addItems(const QStringList<QString> &)" remove="all"/> + <modify-function signature="addItems(const QStringList &)" remove="all"/> <modify-function signature="insertItem(int, const QString &)" remove="all"/> - <modify-function signature="insertItems(int, const QStringList<QString> &)" remove="all"/> + <modify-function signature="insertItems(int, const QStringList &)" remove="all"/> <inject-code> <import-file name="typesystem_gui-java.java" quote-after-line="class QListWidget___" quote-before-line="}// class"/> </inject-code>
--- a/generator/typesystem_phonon.xml Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/typesystem_phonon.xml Wed Dec 23 04:02:28 2009 +0500 @@ -75,7 +75,7 @@ <interface-type name="Phonon::MediaObjectInterface" java-name="AbstractMediaObject"/> <interface-type name="Phonon::PlatformPlugin" java-name="PlatformPlugin"> - <modify-function signature="notification(const char *, const QString &, const QStringList<QString> &, QObject *, const char *)const"> + <modify-function signature="notification(const char *, const QString &, const QStringList &, QObject *, const char *)const"> <modify-argument index="3"> <replace-default-expression with="null"/> </modify-argument>
--- a/generator/typesystem_xmlpatterns.xml Sun Dec 13 06:24:55 2009 +0500 +++ b/generator/typesystem_xmlpatterns.xml Wed Dec 23 04:02:28 2009 +0500 @@ -125,7 +125,7 @@ <object-type name="QXmlQuery"> <modify-function signature="evaluateTo(QAbstractXmlReceiver *)const" remove="all"/> - <modify-function signature="evaluateTo(QStringList<QString>*)const" remove="all"/> + <modify-function signature="evaluateTo(QStringList*)const" remove="all"/> <modify-function signature="setMessageHandler(QAbstractMessageHandler*)"> <modify-argument index="1"> <reference-count action="set" variable-name="__rcMessageHandler"/>
--- a/qt/qtd/MetaMarshall.d Sun Dec 13 06:24:55 2009 +0500 +++ b/qt/qtd/MetaMarshall.d Wed Dec 23 04:02:28 2009 +0500 @@ -2,8 +2,14 @@ import std.traits; +// utilities // shouldn't be here +public bool startsWith(T)(T[] source, T[] pattern) +{ + return source.length >= pattern.length && source[0 .. pattern.length] == pattern[]; +} + string __toString(long v) { if (v == 0) @@ -30,6 +36,16 @@ return ret; } +template templateParam(U : V!(U), alias V) +{ + alias U templateParam; +} + + +/* + * actual stuff + */ + template isQObjectType(T) // is a QObject type that belongs to the library { enum isQObjectType = is(T.__isQObjectType); @@ -55,6 +71,11 @@ enum isStringType = is(T == string); } +template isQList(T) +{ + enum isQList = startsWith(Unqual!(T).stringof, "QList!"); +} + // converts an argumnent from C++ to D in qt_metacall string metaCallArgument(T)(string ptr) { @@ -76,6 +97,8 @@ return T.stringof ~ "*"; else static if (isStringType!T) return "QString"; + else static if (isQList!T) + return "QList<" ~ qtDeclArg!(templateParam!T)() ~ ">"; else static if (isNativeType!T) return Unqual!T.stringof; else