changeset 104:64b874c86f9b

fixed bug with QSpinBox
author eldar
date Sat, 30 May 2009 13:07:26 +0000
parents 236401001115
children 3aa118a9ae71
files examples/layouts/dynamiclayouts/build generator/cppimplgenerator.cpp generator/dgenerator.cpp tools/duic/tests/ui_mainwindow.d
diffstat 4 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/examples/layouts/dynamiclayouts/build	Fri May 29 14:59:43 2009 +0000
+++ b/examples/layouts/dynamiclayouts/build	Sat May 30 13:07:26 2009 +0000
@@ -1,3 +1,3 @@
 #! /bin/bash
 
-ldc main.d dialog.d -I../../../ -I../../../qt/d1 -L-L../../../lib -L-lqtdgui -L-lqtdcore -L-lQtCore -L-lQtGui -ofdynamiclayouts
\ No newline at end of file
+dmd main.d dialog.d -I../../../ -I../../../qt/d1 -L-L../../../lib -L-lqtdgui -L-lqtdcore -L-lQtCore -L-lQtGui -ofdynamiclayouts
\ No newline at end of file
--- 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()) {
--- a/generator/dgenerator.cpp	Fri May 29 14:59:43 2009 +0000
+++ b/generator/dgenerator.cpp	Sat May 30 13:07:26 2009 +0000
@@ -2928,12 +2928,10 @@
                     native_id =  "__ptr_" + f_type->typeEntry()->designatedInterface()->name();
                 s << INDENT << "return ret_value is null? null : ret_value." << native_id << ";" << endl;
             } else if (f_type->isTargetLangString())
-                s << INDENT << "ret_str = _d_str.ptr;" << endl
-                  << INDENT << "ret_str_size = _d_str.length;" << endl;
+                s << INDENT << "*ret_str = _d_str;" << endl;
             else if (f_type->isContainer())
                 s << INDENT << "*__d_arr_ptr = return_value.ptr;" << endl
                   << INDENT << "*__d_arr_size = return_value.length;" << endl;
-//                  << INDENT << "addReference(return_value.ptr);" << endl;
             else if (f_type->name() == "QModelIndex" || f_type->typeEntry()->isStructInD())
                 ;
             else
--- a/tools/duic/tests/ui_mainwindow.d	Fri May 29 14:59:43 2009 +0000
+++ b/tools/duic/tests/ui_mainwindow.d	Sat May 30 13:07:26 2009 +0000
@@ -1,13 +1,13 @@
 /********************************************************************************
 ** Form generated from reading ui file 'mainwindow.ui'
 **
-** Created: Tue May 19 04:13:07 2009
+** Created: Sat May 30 11:51:12 2009
 **      by: QtD User Interface Compiler version 4.5.0
 **
 ** WARNING! All changes made in this file will be lost when recompiling ui file!
 ********************************************************************************/
 
-//module ui_mainwindow;
+module ui_mainwindow;
 
 public import qt.core.QString;
 public import qt.core.QVariant;