diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -1066,52 +1066,38 @@ QString cppType(const QString &t) { const QString type = t.toLower(); - if (type == QLatin1String("string")) { - return QStringLiteral("QString"); - } else if (type == QLatin1String("stringlist")) { - return QStringLiteral("QStringList"); - } else if (type == QLatin1String("font")) { - return QStringLiteral("QFont"); - } else if (type == QLatin1String("rect")) { - return QStringLiteral("QRect"); - } else if (type == QLatin1String("size")) { - return QStringLiteral("QSize"); - } else if (type == QLatin1String("color")) { - return QStringLiteral("QColor"); - } else if (type == QLatin1String("point")) { - return QStringLiteral("QPoint"); - } else if (type == QLatin1String("int")) { - return QStringLiteral("int"); - } else if (type == QLatin1String("uint")) { - return QStringLiteral("uint"); - } else if (type == QLatin1String("bool")) { - return QStringLiteral("bool"); - } else if (type == QLatin1String("double")) { - return QStringLiteral("double"); - } else if (type == QLatin1String("datetime")) { - return QStringLiteral("QDateTime"); - } else if (type == QLatin1String("longlong")) { - return QStringLiteral("qint64"); - } else if (type == QLatin1String("ulonglong")) { - return QStringLiteral("quint64"); - } else if (type == QLatin1String("intlist")) { - return QStringLiteral("QList"); - } else if (type == QLatin1String("enum")) { - return QStringLiteral("int"); - } else if (type == QLatin1String("path")) { - return QStringLiteral("QString"); - } else if (type == QLatin1String("pathlist")) { - return QStringLiteral("QStringList"); - } else if (type == QLatin1String("password")) { - return QStringLiteral("QString"); - } else if (type == QLatin1String("url")) { - return QStringLiteral("QUrl"); - } else if (type == QLatin1String("urllist")) { - return QStringLiteral("QList"); - } else { - cerr << "kconfig_compiler_kf5 does not support type \"" << type << "\"" << endl; - return QStringLiteral("QString"); //For now, but an assert would be better - } + if (QVector({ + QLatin1String("int"), + QLatin1String("uint"), + QLatin1String("bool"), + QLatin1String("double")} + ).contains(type)) { + return type; + } + + auto valueMap = std::map { + {QStringLiteral("string"), QStringLiteral("QString")}, + {QStringLiteral("stringlist"), QStringLiteral("QStringList")}, + {QStringLiteral("font"), QStringLiteral("QFont") }, + {QStringLiteral("rect"), QStringLiteral("QRect")}, + {QStringLiteral("size"), QStringLiteral("QSize")}, + {QStringLiteral("color"), QStringLiteral("QColor")}, + {QStringLiteral("point"), QStringLiteral("QPoint")}, + {QStringLiteral("datetime"), QStringLiteral("QDateTime")}, + {QStringLiteral("longlong"), QStringLiteral("qint64")}, + {QStringLiteral("ulonglong"), QStringLiteral("quint64")}, + {QStringLiteral("intlist"), QStringLiteral("QList")}, + {QStringLiteral("enum"), QStringLiteral("int")}, + {QStringLiteral("path"), QStringLiteral("QString")}, + {QStringLiteral("pathlist"), QStringLiteral("QStringList")}, + {QStringLiteral("password"), QStringLiteral("QString")}, + {QStringLiteral("url"), QStringLiteral("QUrl")}, + {QStringLiteral("urllist"), QStringLiteral("QList")}, + }; + auto it = valueMap.find(type); + Q_ASSERT(it != valueMap.end()); + + return it->second; } QString defaultValue(const QString &t)