From d0c2ccac8b775bda390c59274d1ac15ece28b251 Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Wed, 18 Jan 2023 12:22:16 +0200 Subject: [PATCH] QmlDesigner: Fix the bug for using QMap::asKeyValueRange This feature is available for QT_VERSION >= 6.4.0. So a compiler condition is considered to switch the code for different versions. Also, an old unused function has been removed. Change-Id: I470812213cfb00c28fcf062d214895cfcba68d69 Reviewed-by: Mahmoud Badri --- .../componentcore/designericons.cpp | 24 +++++++------------ .../components/componentcore/designericons.h | 4 ++-- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/plugins/qmldesigner/components/componentcore/designericons.cpp b/src/plugins/qmldesigner/components/componentcore/designericons.cpp index ce604d6d8cd..2b3ce750848 100644 --- a/src/plugins/qmldesigner/components/componentcore/designericons.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designericons.cpp @@ -79,21 +79,6 @@ EType DesignerIconEnums::value(const QString &keyStr, bool *ok) return static_cast(metaEnum.keyToValue(keyStr.toLatin1(), ok)); } -Q_GLOBAL_STATIC(QStringList, _iconFontMandatoryKeys); - -const QStringList & iconFontMandatoryKeys() -{ - if (_iconFontMandatoryKeys->isEmpty()) { - *_iconFontMandatoryKeys - << DesignerIconEnums::keyName - << DesignerIconEnums::keyName - << DesignerIconEnums::keyName - << DesignerIconEnums::keyName - << "size"; - } - return *_iconFontMandatoryKeys; -} - QJsonObject mergeJsons(const QJsonObject &prior, const QJsonObject &joiner) { QJsonObject object = prior; @@ -237,8 +222,17 @@ struct JsonMap> static QJsonObject json(const QMap &map) { QJsonObject output; + +#if (QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)) for (const auto &[key, val] : map.asKeyValueRange()) output[DesignerIconEnums::toString(key)] = JsonMap::json(val); +#else + const auto mapKeys = map.keys(); + for (const Key &key : mapKeys) { + const Value &val = map.value(key); + output[DesignerIconEnums::toString(key)] = JsonMap::json(val); + } +#endif return output; } diff --git a/src/plugins/qmldesigner/components/componentcore/designericons.h b/src/plugins/qmldesigner/components/componentcore/designericons.h index 342016b77c1..425ac901211 100644 --- a/src/plugins/qmldesigner/components/componentcore/designericons.h +++ b/src/plugins/qmldesigner/components/componentcore/designericons.h @@ -24,14 +24,14 @@ public: QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off); + IconFontHelper(); + static IconFontHelper fromJson(const QJsonObject &jsonObject); QJsonObject toJson() const; Theme::Icon themeIcon() const; Theme::Color themeColor() const; private: - IconFontHelper(); - Theme::Icon mThemeIcon; Theme::Color mThemeColor; };