mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
65 lines
1.5 KiB
QML
65 lines
1.5 KiB
QML
import QtQuick 2.12
|
|
import QtQuick.Window 2.12
|
|
import QtQuick.Controls 1.6
|
|
import QtQuick.Layouts 1.3
|
|
import QtQuick.Dialogs 1.0
|
|
import "../fields"
|
|
|
|
Column {
|
|
id: column
|
|
x: 0
|
|
y: 0
|
|
height: parent.height
|
|
width: parent.width
|
|
spacing: 6
|
|
property var modelIndex
|
|
|
|
signal fieldChanged(string key, var newValue)
|
|
|
|
// called by each field when its value is changed.
|
|
function fieldChangedMethod(key, newValue) {
|
|
var ROLE_DATA = 0x0103;
|
|
var dataValue = theModel.data(modelIndex, ROLE_DATA);
|
|
dataValue[key] = newValue;
|
|
|
|
// copy the new value into the model.
|
|
theModel.setData(modelIndex, dataValue, ROLE_DATA);
|
|
}
|
|
|
|
// called when a new model is loaded
|
|
function setIndex(index) {
|
|
modelIndex = index;
|
|
|
|
var ROLE_DATA = 0x0103;
|
|
var dataValue = theModel.data(modelIndex, ROLE_DATA);
|
|
|
|
var fields = ["currentState", "states"];
|
|
|
|
// copy data from theModel into each field.
|
|
var l = fields.length;
|
|
for (var i = 0; i < l; i++) {
|
|
var val = dataValue[fields[i]];
|
|
if (val) {
|
|
column.children[i].value = val;
|
|
}
|
|
}
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
// this signal is fired from each data field when values are changed.
|
|
column.fieldChanged.connect(fieldChangedMethod)
|
|
}
|
|
|
|
StringField {
|
|
id: currentStateField
|
|
key: "currentState"
|
|
value: "default"
|
|
}
|
|
|
|
JSONField {
|
|
id: statesField
|
|
key: "states"
|
|
value: {}
|
|
}
|
|
}
|
|
|