Mercurial > projects > qtd
comparison generator/cppimplgenerator.cpp @ 35:5917a613d118
wrapping of QtXml
author | eldar |
---|---|
date | Sat, 16 May 2009 20:47:44 +0000 |
parents | 17cc45b32686 |
children | 8022ef40f110 |
comparison
equal
deleted
inserted
replaced
34:17cc45b32686 | 35:5917a613d118 |
---|---|
596 | 596 |
597 // qtd2 hack!! | 597 // qtd2 hack!! |
598 if (java_class->package() == "qt.gui") | 598 if (java_class->package() == "qt.gui") |
599 s << "#include \"ArrayOps_qt_gui.h\"" << endl; | 599 s << "#include \"ArrayOps_qt_gui.h\"" << endl; |
600 | 600 |
601 QString pkg_name = QString(java_class->package()).replace(".", "_"); | |
602 s << QString("#include \"ArrayOps_%1.h\"").arg(pkg_name) << endl; | |
603 | |
601 s << endl; | 604 s << endl; |
602 | 605 |
603 writeInterfaceCasts(s, java_class); | 606 writeInterfaceCasts(s, java_class); |
604 | 607 |
605 /* qtd2 | 608 /* qtd2 |
1919 QString arg_name = argument->indexedName(); | 1922 QString arg_name = argument->indexedName(); |
1920 | 1923 |
1921 if (nativeArgCount > 0) | 1924 if (nativeArgCount > 0) |
1922 s << "," << endl << " "; | 1925 s << "," << endl << " "; |
1923 // if QString argument we have to pass DArrat | 1926 // if QString argument we have to pass DArrat |
1924 if ((te && te->qualifiedCppName() == "QString") || d_type->isTargetLangString()) | 1927 if ((te && te->qualifiedCppName() == "QString") || d_type->isTargetLangString()) { |
1925 s << "string " << arg_name; | 1928 if (d_export) |
1926 else if (d_type->isContainer()) { | 1929 s << "string " << arg_name; |
1930 else | |
1931 s << "DArray " << arg_name; | |
1932 } else if (d_type->isContainer()) { | |
1927 const ContainerTypeEntry *cte = | 1933 const ContainerTypeEntry *cte = |
1928 static_cast<const ContainerTypeEntry *>(te); | 1934 static_cast<const ContainerTypeEntry *>(te); |
1929 if(isLinearContainer(cte)) | 1935 if(isLinearContainer(cte)) |
1930 s << QString("void *%1, size_t %1_size").arg(arg_name); | 1936 s << QString("void *%1, size_t %1_size").arg(arg_name); |
1931 } else { | 1937 } else { |
3021 } else if (java_type->isVariant()) { | 3027 } else if (java_type->isVariant()) { |
3022 s << INDENT << "QVariant *" << java_name | 3028 s << INDENT << "QVariant *" << java_name |
3023 << " = new QVariant(" << qt_name << ");" << endl; | 3029 << " = new QVariant(" << qt_name << ");" << endl; |
3024 | 3030 |
3025 } else if (java_type->isTargetLangString()) { | 3031 } else if (java_type->isTargetLangString()) { |
3026 | 3032 if(java_type->typeEntry()->qualifiedCppName() == "QStringRef") { |
3027 // if (option & BoxedPrimitive) | 3033 s << INDENT << "const QString *str_ref = " << qt_name << ".string();" << endl |
3028 s << INDENT << "_d_toUtf8(" << qt_name << ".utf16(), " | 3034 << INDENT << "if(str_ref)" << endl |
3029 << qt_name << ".size(), " << java_name << ");" << endl; | 3035 << INDENT << " _d_toUtf8(str_ref->utf16(), str_ref->size(), " << java_name << ");" << endl |
3030 | 3036 << INDENT << "else {" << endl |
3037 << INDENT << " QString empty_str;" << endl | |
3038 << INDENT << " _d_toUtf8(empty_str.utf16(), empty_str.size(), " << java_name << ");" << endl | |
3039 << INDENT << "}" << endl; | |
3040 } else { | |
3041 s << INDENT << QString("_d_toUtf8(%1.utf16(), %1.size(), %2);").arg(qt_name, java_name) << endl; | |
3042 } | |
3031 } else if (java_type->isTargetLangChar()) { | 3043 } else if (java_type->isTargetLangChar()) { |
3032 s << INDENT << "jchar " << java_name << " = " << qt_name << ".unicode();" << endl; | 3044 s << INDENT << "jchar " << java_name << " = " << qt_name << ".unicode();" << endl; |
3033 | 3045 |
3034 } else if (java_type->isIntegerEnum() || java_type->isIntegerFlags() | 3046 } else if (java_type->isIntegerEnum() || java_type->isIntegerFlags() |
3035 || ((option & EnumAsInts) && (java_type->isEnum() || java_type->isFlags()))) { | 3047 || ((option & EnumAsInts) && (java_type->isEnum() || java_type->isFlags()))) { |
3379 | 3391 |
3380 s << INDENT << "for (int i=0; i<" << java_name << "_size; ++i) {" << endl; | 3392 s << INDENT << "for (int i=0; i<" << java_name << "_size; ++i) {" << endl; |
3381 { | 3393 { |
3382 Indentation indent(INDENT); | 3394 Indentation indent(INDENT); |
3383 if(targ->isTargetLangString()) | 3395 if(targ->isTargetLangString()) |
3384 s << INDENT << "string __d_element;" << endl | 3396 s << INDENT << "DArray __d_element;" << endl |
3385 << INDENT << "qtd_get_string_from_array(" << java_name << ", i, &__d_element);" << endl; | 3397 << INDENT << "qtd_get_string_from_array(" << java_name << ", i, &__d_element);" << endl; |
3386 else { | 3398 else { |
3387 s << INDENT; | 3399 s << INDENT; |
3388 writeTypeInfo(s, targ, Option(VirtualDispatch | ForcePointer | EnumAsInts)); | 3400 writeTypeInfo(s, targ, Option(VirtualDispatch | ForcePointer | EnumAsInts)); |
3389 QString cast_string = ""; | 3401 QString cast_string = ""; |