593 lines
10 KiB
QML
593 lines
10 KiB
QML
import QtQuick 2.0
|
|
|
|
Item {
|
|
id: root
|
|
objectName: "root"
|
|
property int zero: 0
|
|
|
|
Item {
|
|
id: c1
|
|
objectName: "c1"
|
|
property int one: zero + 1
|
|
|
|
Item {
|
|
id: c1c1
|
|
objectName: "c1c1"
|
|
property bool two: c2c1c1.two
|
|
}
|
|
|
|
Item {
|
|
id: c1c2
|
|
objectName: "c1c2"
|
|
property string three: "three"
|
|
|
|
Rectangle {
|
|
id: c1c2c3
|
|
objectName: "c1c2c3"
|
|
property alias othercolor: c2c1.color
|
|
color: if (c2c1.color == Qt.rgba(0,0,1)) Qt.rgba(1,0,0); else Qt.rgba(0,1,0);
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: c2
|
|
objectName: "c2"
|
|
property string two: "two"
|
|
|
|
Rectangle {
|
|
id: c2c1
|
|
objectName: "c2c1"
|
|
property string three: "2" + c1c2.three
|
|
color: "blue"
|
|
|
|
MouseArea {
|
|
id: c2c1c1
|
|
objectName: "c2c1c1"
|
|
property bool two: false
|
|
onClicked: two = !two
|
|
}
|
|
|
|
Item {
|
|
id: c2c1c2
|
|
objectName: "c2c1c2"
|
|
property string three: "1" + parent.three
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: c3
|
|
objectName: "c3"
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
Item {}
|
|
}
|
|
|
|
property alias c1one: c1.one
|
|
property bool success: true
|
|
Component.onCompleted: {
|
|
// test state after initial bindings evaluation
|
|
if (zero != 0) success = false;
|
|
if (c1.one != 1) success = false;
|
|
if (c1c1.two != false) success = false;
|
|
if (c1c2.three != "three") success = false;
|
|
if (c1c2c3.color != Qt.rgba(1,0,0)) success = false;
|
|
if (c2.two != "two") success = false;
|
|
if (c2c1.three != "2three") success = false;
|
|
if (c2c1.color != Qt.rgba(0,0,1)) success = false;
|
|
if (c2c1c1.two != false) success = false;
|
|
if (c2c1c2.three != "12three") success = false;
|
|
if (c3.children.length != 500) success = false;
|
|
|
|
// now retrigger bindings evaluation
|
|
root.zero = 5;
|
|
if (c1.one != 6) success = false;
|
|
c2c1c1.two = true;
|
|
if (c1c1.two != true) success = false;
|
|
c1c2.three = "3";
|
|
if (c2c1.three != "23") success = false;
|
|
if (c2c1c2.three != "123") success = false;
|
|
c2c1.color = Qt.rgba(1,0,0);
|
|
if (c1c2c3.color != Qt.rgba(0,1,0)) success = false;
|
|
if (c1c2c3.othercolor != Qt.rgba(1,0,0)) success = false;
|
|
}
|
|
}
|