comparison generator/abstractmetabuilder.cpp @ 380:beb04f46ef4a

fix NULL default values
author Eldar Insafutdinov
date Sat, 10 Jul 2010 22:32:16 +0100
parents 18bd68f586c6
children 1049b01aebd2
comparison
equal deleted inserted replaced
379:a795eeb3b21f 380:beb04f46ef4a
2022 2022
2023 // constructor or functioncall can be a bit tricky... 2023 // constructor or functioncall can be a bit tricky...
2024 if (expr == "QVariant()" /* qtd || expr == "QModelIndex()"*/) { 2024 if (expr == "QVariant()" /* qtd || expr == "QModelIndex()"*/) {
2025 return "null"; 2025 return "null";
2026 } else if (expr == "QString()") { 2026 } else if (expr == "QString()") {
2027 return "null"; 2027 return "\"\"";
2028 } else if (expr.endsWith(")") && expr.contains("::")) { 2028 } else if (expr.endsWith(")") && expr.contains("::")) {
2029 TypeEntry *typeEntry = TypeDatabase::instance()->findType(expr.left(expr.indexOf("::"))); 2029 TypeEntry *typeEntry = TypeDatabase::instance()->findType(expr.left(expr.indexOf("::")));
2030 if (typeEntry) 2030 if (typeEntry)
2031 return typeEntry->qualifiedTargetLangName() + "." + expr.right(expr.length() - expr.indexOf("::") - 2); 2031 return typeEntry->qualifiedTargetLangName() + "." + expr.right(expr.length() - expr.indexOf("::") - 2);
2032 } else if (expr.endsWith(")") && type->isValue()) { 2032 } else if (expr.endsWith(")") && type->isValue()) {
2038 return typeEntry->qualifiedCppName() + expr.right(expr.length() - pos); 2038 return typeEntry->qualifiedCppName() + expr.right(expr.length() - pos);
2039 else 2039 else
2040 return "new " + typeEntry->qualifiedCppName() + expr.right(expr.length() - pos); 2040 return "new " + typeEntry->qualifiedCppName() + expr.right(expr.length() - pos);
2041 } else 2041 } else
2042 return expr; 2042 return expr;
2043 } else if (expr == "0") { 2043 } else if (expr == "0" || expr == "NULL") {
2044 return "null"; 2044 return "null";
2045 } else if (type->isObject() || type->isValue() || expr.contains("::")) { // like Qt::black passed to a QColor 2045 } else if (type->isObject() || type->isValue() || expr.contains("::")) { // like Qt::black passed to a QColor
2046 TypeEntry *typeEntry = TypeDatabase::instance()->findType(expr.left(expr.indexOf("::"))); 2046 TypeEntry *typeEntry = TypeDatabase::instance()->findType(expr.left(expr.indexOf("::")));
2047 2047
2048 expr = expr.right(expr.length() - expr.indexOf("::") - 2); 2048 expr = expr.right(expr.length() - expr.indexOf("::") - 2);