diff --git a/src/UI/PropertyModel.cc b/src/UI/PropertyModel.cc index a882df3e4f8a9342d900b65a2c4af9a08fc50eab..9530ea77c4ee8315188235eb09b7e8cecf7d7c02 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 f1802d85e494c8b1c6deccf998b5a44b09720ba2..45a21ab01096912dd8a8ee68f2de4982b2111f69 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{};