diff options
Diffstat (limited to 'src/tools/moc/generator.cpp')
-rw-r--r-- | src/tools/moc/generator.cpp | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index afd4cfe601..71df7e7579 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -624,17 +624,7 @@ void Generator::generateFunctionParameters(const QList<FunctionDef>& list, const if (j > -1) fputc(' ', out); const QByteArray &typeName = (j < 0) ? f.normalizedType : f.arguments.at(j).normalizedType; - if (isBuiltinType(typeName)) { - int type = nameToBuiltinType(typeName); - const char *valueString = metaTypeEnumValueString(type); - if (valueString) - fprintf(out, "QMetaType::%s", valueString); - else - fprintf(out, "%4d", type); - } else { - Q_ASSERT(!typeName.isEmpty() || f.isConstructor); - fprintf(out, "0x%.8x | %d", IsUnresolvedType, stridx(typeName)); - } + generateTypeInfo(typeName, /*allowEmptyName=*/f.isConstructor); fputc(',', out); } @@ -648,6 +638,31 @@ void Generator::generateFunctionParameters(const QList<FunctionDef>& list, const } } +void Generator::generateTypeInfo(const QByteArray &typeName, bool allowEmptyName) +{ + Q_UNUSED(allowEmptyName); + if (isBuiltinType(typeName)) { + int type; + const char *valueString; + if (typeName == "qreal") { + type = QMetaType::UnknownType; + valueString = "QReal"; + } else { + type = nameToBuiltinType(typeName); + valueString = metaTypeEnumValueString(type); + } + if (valueString) { + fprintf(out, "QMetaType::%s", valueString); + } else { + Q_ASSERT(type != QMetaType::UnknownType); + fprintf(out, "%4d", type); + } + } else { + Q_ASSERT(!typeName.isEmpty() || allowEmptyName); + fprintf(out, "0x%.8x | %d", IsUnresolvedType, stridx(typeName)); + } +} + void Generator::registerPropertyStrings() { for (int i = 0; i < cdef->propertyList.count(); ++i) { @@ -721,18 +736,7 @@ void Generator::generateProperties() flags |= Final; fprintf(out, " %4d, ", stridx(p.name)); - - if (isBuiltinType(p.type)) { - int type = nameToBuiltinType(p.type); - const char *valueString = metaTypeEnumValueString(type); - if (valueString) - fprintf(out, "QMetaType::%s", valueString); - else - fprintf(out, "%4d", type); - } else { - fprintf(out, "0x%.8x | %d", IsUnresolvedType, stridx(p.type)); - } - + generateTypeInfo(p.type); fprintf(out, ", 0x%.8x,\n", flags); } |