From 63f98ec9e4aec8416dfb787e7c422c8f0b779b3b Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Fri, 12 Jan 2024 11:00:40 +0200 Subject: [PATCH] QmlDesigner: Keep the order of columns in CollectionEditor Fixes: QDS-11508 Change-Id: Ic75f86207149469ed4b08605db9feb10c4e1141d Reviewed-by: Shrief Gabr Reviewed-by: Mahmoud Badri Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Miikka Heikkinen --- .../collectiondetailsmodel.cpp | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp index fc5f93670f2..02419587b03 100644 --- a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp +++ b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp @@ -20,17 +20,27 @@ namespace { QStringList getJsonHeaders(const QJsonArray &collectionArray) { - QSet result; + QSet resultSet; + QList result; + for (const QJsonValue &value : collectionArray) { if (value.isObject()) { const QJsonObject object = value.toObject(); - const QStringList headers = object.toVariantMap().keys(); - for (const QString &header : headers) - result.insert(header); + QJsonObject::ConstIterator element = object.constBegin(); + const QJsonObject::ConstIterator stopItem = object.constEnd(); + + while (element != stopItem) { + const QString property = element.key(); + if (!resultSet.contains(property)) { + result.append(property); + resultSet.insert(property); + } + ++element; + } } } - return result.values(); + return result; } class CollectionDataTypeHelper