overte-Armored-Dragon/tools/animedit/qml/nodes/ClipData.qml
2019-11-22 15:40:44 -08:00

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
}
}