mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
148 lines
3.1 KiB
QML
148 lines
3.1 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: 50
|
|
width: 200
|
|
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 = ["url", "startFrame", "endFrame", "timeScale", "loopFlag", "mirrorFlag",
|
|
"blendType", "baseURL", "baseFrame", "startFrameVar", "endFrameVar",
|
|
"timeScaleVar", "loopFlagVar", "mirrorFlagVar"];
|
|
|
|
// 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: urlField
|
|
key: "url"
|
|
value: "qrc:///avatar/animations/idle.fbx"
|
|
}
|
|
|
|
NumberField {
|
|
id: startFrameField
|
|
key: "startFrame"
|
|
value: 0.0
|
|
}
|
|
|
|
NumberField {
|
|
id: endFrameField
|
|
key: "endFrame"
|
|
value: 0.0
|
|
}
|
|
|
|
NumberField {
|
|
id: timeScaleField
|
|
key: "timeScale"
|
|
value: 0.0
|
|
}
|
|
|
|
BooleanField {
|
|
id: loopFlagField
|
|
key: "loopFlag"
|
|
value: false
|
|
}
|
|
|
|
BooleanField {
|
|
id: mirrorFlagField
|
|
key: "mirrorFlag"
|
|
value: false
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: blendTypeField
|
|
key: "blendType"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: baseURLField
|
|
key: "baseURL"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
NumberField {
|
|
id: baseFrameField
|
|
key: "baseFrame"
|
|
value: 0.0
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: startFrameVarField
|
|
key: "startFrameVar"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: endFrameVarField
|
|
key: "endFrameVar"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: timeScaleVarField
|
|
key: "timeScaleVar"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: loopFlagVarField
|
|
key: "loopFlagVar"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
|
|
StringField {
|
|
id: mirrorFlagVarField
|
|
key: "mirrorFlagVar"
|
|
value: ""
|
|
optional: true
|
|
}
|
|
}
|
|
|