31 lines
705 B
QML
31 lines
705 B
QML
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
import QtQuick 2.12
|
|
import QSyncable 1.0
|
|
|
|
JsonListModel {
|
|
id: model
|
|
source: []
|
|
Component.onCompleted: if (! keyField) { throw "keyField not set" }
|
|
|
|
function toObject(itemList=listModel) {
|
|
let objList = []
|
|
|
|
for (let item of itemList) {
|
|
let obj = JSON.parse(JSON.stringify(item))
|
|
|
|
for (let role in obj) {
|
|
if (obj[role]["objectName"] !== undefined) {
|
|
obj[role] = toObject(item[role])
|
|
}
|
|
}
|
|
objList.push(obj)
|
|
}
|
|
return objList
|
|
}
|
|
|
|
function toJson() {
|
|
return JSON.stringify(toObject(), null, 4)
|
|
}
|
|
}
|