From 767f234efcea7511bd71c5790522fee3af815295 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 30 Aug 2021 15:44:17 +0200
Subject: [PATCH] UI: Fix the PropertyModel::Item creation for "ordered
 QJsonObjects"

---
 src/UI/PropertyModel.cc | 15 ++++++++-------
 src/UI/PropertyModel.hh |  2 +-
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/UI/PropertyModel.cc b/src/UI/PropertyModel.cc
index a882df3e..9530ea77 100644
--- a/src/UI/PropertyModel.cc
+++ b/src/UI/PropertyModel.cc
@@ -107,13 +107,12 @@ PropertyModel::Item::createChild(Item *root, QJsonObject::ConstIterator const &i
 }
 
 PropertyModel::Item *
-PropertyModel::Item::createChild(Item *root, QJsonArray const &singleElemArray) noexcept
+PropertyModel::Item::createChild(Item *root, QJsonObject const &singleElem) noexcept
 {
-    Q_ASSERT(singleElemArray.count() == 1);
+    Q_ASSERT(singleElem.count() == 1);
 
-    const QJsonValue v   = singleElemArray.at(0);
-    const QString key    = v.toObject().keys().at(0);
-    const QJsonValue val = v.toObject().value(key);
+    const QString key    = singleElem.keys().at(0);
+    const QJsonValue val = singleElem.value(key);
 
     Item *child = fromJson(val, root);
     child->setKey(key);
@@ -144,8 +143,10 @@ PropertyModel::Item::fromJson(const QJsonValue &value, PropertyModel::Item *pare
             root->appendChild(createChild(root, it));
     }
 
-    else if (isOrderedJsonObject(value))
-        root->appendChild(createChild(root, value.toArray()));
+    else if (isOrderedJsonObject(value)) {
+        for (const QJsonValue v : value.toArray())
+            root->appendChild(createChild(root, v.toObject()));
+    }
 
     else if (value.isArray()) {
         for (int index = 0; const QJsonValue v : value.toArray()) {
diff --git a/src/UI/PropertyModel.hh b/src/UI/PropertyModel.hh
index f1802d85..45a21ab0 100644
--- a/src/UI/PropertyModel.hh
+++ b/src/UI/PropertyModel.hh
@@ -46,7 +46,7 @@ private:
     private:
         static bool isOrderedJsonObject(QJsonValue const &) noexcept;
         static Item *createChild(Item *root, QJsonObject::ConstIterator const &) noexcept;
-        static Item *createChild(Item *root, QJsonArray const &) noexcept;
+        static Item *createChild(Item *root, QJsonObject const &) noexcept;
         static Item *createChild(Item *root, int pos, QJsonValue const &) noexcept;
 
         QString key{};
-- 
GitLab