From d36c191351fdb5e195014b1ed14c1c75838fe11d Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Sat, 7 Nov 2020 00:23:38 +0100 Subject: [PATCH] tests: Remove qimage_format_enum_names and just use QMetaEnum --- tests/format-enum.h | 52 +++++++++------------------------------------ tests/imagedump.cpp | 4 ++-- 2 files changed, 12 insertions(+), 44 deletions(-) diff --git a/tests/format-enum.h b/tests/format-enum.h index bab06fa..b45b220 100644 --- a/tests/format-enum.h +++ b/tests/format-enum.h @@ -7,56 +7,24 @@ #ifndef FORMAT_ENUM_H #define FORMAT_ENUM_H +#include #include -// Generated from QImage::Format enum -static const char * qimage_format_enum_names[] = { - "Invalid", - "Mono", - "MonoLSB", - "Indexed8", - "RGB32", - "ARGB32", - "ARGB32_Premultiplied", - "RGB16", - "ARGB8565_Premultiplied", - "RGB666", - "ARGB6666_Premultiplied", - "RGB555", - "ARGB8555_Premultiplied", - "RGB888", - "RGB444", - "ARGB4444_Premultiplied", - "RGBX8888", - "RGBA8888", - "RGBA8888_Premultiplied" -}; -// Never claim there are more than QImage::NImageFormats supported formats. -// This is future-proofing against the above list being extended. -static const int qimage_format_enum_names_count = - (sizeof(qimage_format_enum_names) / sizeof(*qimage_format_enum_names) > int(QImage::NImageFormats)) - ? int(QImage::NImageFormats) - : (sizeof(qimage_format_enum_names) / sizeof(*qimage_format_enum_names)); - QImage::Format formatFromString(const QString &str) { - for (int i = 0; i < qimage_format_enum_names_count; ++i) { - if (str.compare(QLatin1String(qimage_format_enum_names[i]), Qt::CaseInsensitive) == 0) { - return (QImage::Format)(i); - } - } - return QImage::Format_Invalid; + const QMetaEnum metaEnum = QMetaEnum::fromType(); + const QString enumString = QStringLiteral("Format_") + str; + + bool ok; + const int res = metaEnum.keyToValue(enumString.toLatin1().constData(), &ok); + + return ok ? static_cast(res) : QImage::Format_Invalid; } QString formatToString(QImage::Format format) { - int index = int(format); - if (index > 0 && index < qimage_format_enum_names_count) { - return QLatin1String(qimage_format_enum_names[index]); - } - return QLatin1String(""); + const QMetaEnum metaEnum = QMetaEnum::fromType(); + return QString::fromLatin1(metaEnum.valueToKey(format)).remove(QStringLiteral("Format_")); } #endif diff --git a/tests/imagedump.cpp b/tests/imagedump.cpp index 7866722..17776cf 100644 --- a/tests/imagedump.cpp +++ b/tests/imagedump.cpp @@ -67,8 +67,8 @@ int main(int argc, char **argv) QTextStream out(stdout); out << "QImage formats:\n"; // skip QImage::Format_Invalid - for (int i = 1; i < qimage_format_enum_names_count; ++i) { - out << " " << qimage_format_enum_names[i] << '\n'; + for (int i = 1; i < QImage::NImageFormats; ++i) { + out << " " << formatToString(static_cast(i)) << '\n'; } return 0; }