[Kde-bindings] KDE/kdebindings/csharp/qyoto

Arno Rehn kde at arnorehn.de
Sat Aug 11 21:59:31 UTC 2007


SVN commit 699047 by arnorehn:

* Improved Qyoto.GetPrimitiveString()

CCMAIL: kde-bindings at kde.org



 M  +1 -0      ChangeLog  
 M  +32 -40    src/Qyoto.cs  


--- trunk/KDE/kdebindings/csharp/qyoto/ChangeLog #699046:699047
@@ -5,6 +5,7 @@
 	* Added implicit type conversions for QUrl.
 	* Fixed generation of ToolBarArea and DockWidgetArea related stuff in
 	  uics.
+	* Improved Qyoto.GetPrimitiveString()
 
 2007-08-09  Richard Dale  <rdale at foton.es>
 
--- trunk/KDE/kdebindings/csharp/qyoto/src/Qyoto.cs #699046:699047
@@ -143,62 +143,54 @@
 		
 		public static string GetPrimitiveString(Type type) {
 			string typeString = type.ToString();
-			string ret = type.ToString();
-
-			if (type.IsGenericType) {
-				return "FIXME: <generic type here>";
-			}
-
-			if (typeString.StartsWith("Qyoto.")) {
-				return typeString.Replace("Qyoto.", "");
-			}
-
-			switch (type.ToString()) {
+			switch (typeString) {
 				case "System.Void":
-					ret = "";
-					break;
+					return "";
 				case "System.Boolean":
-					ret = "bool";
-					break;
+					return "bool";
 				case "System.Int32":
-					ret = "int";
-					break;
+					return "int";
 				case "System.Int64":
-					ret = "long";
-					break;
+					return "long";
 				case "System.UInt32":
-					ret = "uint";
-					break;
+					return "uint";
 				case "System.UInt64":
-					ret = "ulong";
-					break;
+					return "ulong";
 				case "System.Int16":
-					ret = "short";
-					break;
+					return "short";
 				case "System.UInt16":
-					ret = "ushort";
-					break;
+					return "ushort";
 				case "System.Byte":
-					ret = "uchar";
-					break;
+					return "uchar";
 				case "System.SByte":
-					ret = "sbyte";
-					break;
+					return "sbyte";
 				case "System.String":
-					ret = "QString";
-					break;
+					return "QString";
 				case "System.Double":
-					ret = "double";
-					break;
+					return "double";
 				case "System.Single":
-					ret = "float";
-					break;
+					return "float";
 				case "System.Char":
-					ret = "char";
-					break;
+					return "char";
 			}
+
+			if (type.IsGenericType) {
+				return "FIXME: <generic type here>";
+			}
+
+			if (typeString.StartsWith("Qyoto.")) {
+				typeString = typeString.Replace("Qyoto.", "");
+			}
 			
-			return ret;
+			// pointer types
+			if (   type.IsSubclassOf(typeof(QObject))
+			    || typeString == "QListWidgetItem"
+			    || typeString == "QTreeWidgetItem"
+			    || typeString == "QTableWidgetItem"
+			    || typeString == "QStandardItem")
+				typeString += "*";
+			
+			return typeString;
 		}
 		
 		public static string SignatureFromMethodInfo(MethodInfo mi) {



More information about the Kde-bindings mailing list