aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAli Kianian <ali.kianian@qt.io>2024-04-25 14:55:04 +0300
committerAli Kianian <ali.kianian@qt.io>2024-04-25 17:11:29 +0300
commit2febd70b00a09461cb6b13b124591a35158901ba (patch)
tree7f9ed9e567af3284307fc27e989465150726e49d
parent35a986c736752e1fd6304e1c119f76cff91e0e50 (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.qml4
-rw-r--r--src/imports/utils/JsonListModel.qml35
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
}