60 lines
1.4 KiB
QML
60 lines
1.4 KiB
QML
import QtQuick 2.0
|
|
|
|
Item {
|
|
id: root
|
|
|
|
property bool test: false
|
|
|
|
property real testData: 9
|
|
property real testData2: 9
|
|
|
|
states: State {
|
|
name: "change"
|
|
PropertyChanges {
|
|
target: myType
|
|
realProperty: if (testData2 > 3) 9; else 11;
|
|
}
|
|
}
|
|
|
|
AliasBindingsAssignCorrectlyType {
|
|
id: myType
|
|
|
|
aliasProperty: if (testData > 3) 14; else 12;
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
// Check original binding works
|
|
if (myType.aliasProperty != 14) return;
|
|
|
|
testData = 2;
|
|
if (myType.aliasProperty != 12) return;
|
|
|
|
// Change binding indirectly by modifying the "realProperty"
|
|
root.state = "change";
|
|
if (myType.aliasProperty != 9) return;
|
|
|
|
// Check the new binding works
|
|
testData2 = 1;
|
|
if (myType.aliasProperty != 11) return;
|
|
|
|
// Try and trigger the old binding (that should have been removed)
|
|
testData = 6;
|
|
if (myType.aliasProperty != 11) return;
|
|
|
|
// Restore the original binding
|
|
root.state = "";
|
|
if (myType.aliasProperty != 14) return;
|
|
|
|
// Test the restored binding works
|
|
testData = 0;
|
|
if (myType.aliasProperty != 12) return;
|
|
|
|
// Test the old binding isn't somehow hanging around and still in effect
|
|
testData2 = 13;
|
|
if (myType.aliasProperty != 12) return;
|
|
|
|
test = true;
|
|
}
|
|
}
|
|
|