diff generator/cppimplgenerator.cpp @ 188:7dd099050621

initial commit for D2 support
author eldar
date Sun, 12 Jul 2009 18:58:03 +0000
parents d3f4f14d43a5
children a1b48a630f73
line wrap: on
line diff
--- a/generator/cppimplgenerator.cpp	Sat Jul 11 11:17:44 2009 +0000
+++ b/generator/cppimplgenerator.cpp	Sun Jul 12 18:58:03 2009 +0000
@@ -2014,9 +2014,12 @@
                     } else
                         s << translateType(argument->type(), EnumAsInts, d_export);
                 }
-                else if (d_type->name() == "QModelIndex")
-                    s << "QModelIndexAccessor";
-                else if (te->isStructInD())
+                else if (d_type->name() == "QModelIndex") {
+                    if(d_export && dVersion == 2 && d_type->isConstant())
+                        s << "const(QModelIndexAccessor)";
+                    else
+                        s << "QModelIndexAccessor";
+                } else if (te->isStructInD())
                     s << te->qualifiedCppName();
                 else
                     s << "void*";
@@ -3717,8 +3720,12 @@
             return "void*";
         else if (java_type->typeEntry()->isEnum() && d_export)
             return "int" + QString(java_type->indirections(), '*');
-        else
-            return d_name + QString(java_type->indirections(), '*');
+        else {
+            if (java_type->isConstant() && dVersion == 2 && d_export)
+                return "const (" + d_name + ")" + QString(java_type->indirections(), '*');
+            else
+                return d_name + QString(java_type->indirections(), '*');
+        }
     } else {
         return d_name + QString(java_type->indirections(), '*');
     }