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 = "";