Mercurial > projects > qtd
diff generator/cppimplgenerator.cpp @ 104:64b874c86f9b
fixed bug with QSpinBox
author | eldar |
---|---|
date | Sat, 30 May 2009 13:07:26 +0000 |
parents | 1750a803af74 |
children | 3aa118a9ae71 |
line wrap: on
line diff
--- a/generator/cppimplgenerator.cpp Fri May 29 14:59:43 2009 +0000 +++ b/generator/cppimplgenerator.cpp Sat May 30 13:07:26 2009 +0000 @@ -780,8 +780,7 @@ if (f_type) { if (f_type->isTargetLangString()) - s << INDENT << "char* ret_str = NULL;" << endl - << INDENT << "size_t ret_str_size = 0;" << endl; + s << INDENT << "DArray ret_str;" << endl; if (f_type->name() == "QModelIndex") s << INDENT << "QModelIndexAccessor __d_return_value;" << endl; @@ -843,7 +842,7 @@ if (f_type) { if (f_type->isTargetLangString()) - s << ", ret_str, ret_str_size"; + s << ", &ret_str"; if (f_type->name() == "QModelIndex" || f_type->typeEntry()->isStructInD()) s << ", &__d_return_value"; if (f_type->isContainer()) @@ -875,7 +874,7 @@ } if (f_type->isTargetLangString()) - s << INDENT << "return " << "QString::fromUtf8(ret_str, ret_str_size);" << endl; + s << INDENT << "return " << "QString::fromUtf8((const char*) ret_str.ptr, ret_str.length);" << endl; if ( ( f_type->isValue() && !f_type->typeEntry()->isStructInD() ) || f_type->isVariant() ) s << INDENT << "return " << f_type->name() << "(*__qt_return_value);" << endl; //" __qt_return_value = "; @@ -894,9 +893,12 @@ s << "(void *d_entity"; if (ret_type) { - if (ret_type->isTargetLangString()) - s << ", char* ret_str, size_t ret_str_size"; - + if (ret_type->isTargetLangString()) { + if (d_export) + s << ", string* ret_str"; + else + s << ", DArray* ret_str"; + } if (ret_type->name() == "QModelIndex") s << ", QModelIndexAccessor *__d_return_value"; else if(ret_type->typeEntry()->isStructInD()) @@ -2113,6 +2115,8 @@ extra_param); s << endl; + writeRefArguments(s, java_function); + writeQtToJava(s, function_type, qt_return_value, java_return_value, java_function, 0, EnumAsInts); @@ -2129,8 +2133,8 @@ } else { writeFunctionCall(s, qt_object_name, java_function, function_prefix, option, extra_param); + writeRefArguments(s, java_function); } - writeRefArguments(s, java_function); } } if(!java_function->argumentReplaced(0).isEmpty()) {