diff options
author | Ali Kianian <ali.kianian@qt.io> | 2024-04-25 14:55:04 +0300 |
---|---|---|
committer | Ali Kianian <ali.kianian@qt.io> | 2024-04-25 17:11:29 +0300 |
commit | 2febd70b00a09461cb6b13b124591a35158901ba (patch) | |
tree | 7f9ed9e567af3284307fc27e989465150726e49d | |
parent | 35a986c736752e1fd6304e1c119f76cff91e0e50 (diff) |
QmlDesigner: Synchronize JsonListModel with new Qml Update
Fixes: QDS-12544
Change-Id: Id2c592a4887fd2b66d43fc49cf97690d3310744f
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r-- | src/imports/utils/ChildListModel.qml | 4 | ||||
-rw-r--r-- | src/imports/utils/JsonListModel.qml | 35 |
2 files changed, 16 insertions, 23 deletions
diff --git a/src/imports/utils/ChildListModel.qml b/src/imports/utils/ChildListModel.qml index 2375933..2e9c146 100644 --- a/src/imports/utils/ChildListModel.qml +++ b/src/imports/utils/ChildListModel.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick +import QtQml.Models as M import QtQuick.Studio.Utils -ListModel { +M.ListModel { id: listModel property string modelName diff --git a/src/imports/utils/JsonListModel.qml b/src/imports/utils/JsonListModel.qml index d86084e..685b8c1 100644 --- a/src/imports/utils/JsonListModel.qml +++ b/src/imports/utils/JsonListModel.qml @@ -34,18 +34,18 @@ ** ****************************************************************************/ -import QtQuick -import QtQuick.Studio.Utils -//import "jsonpath.js" as JSONPath +import QtQml +import QtQml.Models as M +import QtQuick.Studio.Utils as U -ListModel { +M.ListModel { id: listModel property url source property var jsonObject dynamicRoles: true - property FileReader fileReader: FileReader { + property U.FileReader fileReader: U.FileReader { id: fileReader filePath: listModel.source onContentChanged: listModel.updateJSON() @@ -63,20 +63,11 @@ ListModel { } function updateJSON() { - if (fileReader.content === "") - return - - var objectArray = parseJSONString(fileReader.content) + var objectArray = JSON.parse(fileReader.content) listModel.jsonObject = fromLocalJson(objectArray) invalidateChildModels() } - function parseJSONString(jsonString, object) { - var objectArray = JSON.parse(jsonString) - - return objectArray - } - function isObject(obj) { return obj && obj.constructor === Object } @@ -122,16 +113,18 @@ ListModel { } function invalidateChildModels() { - for(var property in listModel) { - if (listModel[property].jsonObject !== undefined) { - listModel[property].jsonObject = listModel.jsonObject - } - } + for (let property in listModel) { + let propertyValue = listModel[property] + let propertyValueIsObject = propertyValue && typeof(propertyValue) === "object" + if (propertyValueIsObject && propertyValue.jsonObject !== undefined) + propertyValue.jsonObject = listModel.jsonObject + } } Component.onCompleted: { - invalidateChildModels() + updateJSON() } + // qmllint enable compiler } |