The Binding type only restores a property's original value if was set to an expression, and not a constant value.
Take the following example:
The Rectangle's color is initially set to blue, but the Binding object causes the Rectangle's color to alternate between green and yellow.
When enableBinding=false, this binding is disabled, and the original blue color should be restored. However, this only happens if the initial color property value was set as an expression (e.g. "if (1) "blue") and not if it was set as a constant (e.g. "blue").
This makes the Binding type unusable in the case where a library component needs to temporarily modify a provided object, as there is no guarantee that the object's original property value will be restored.
|For Gerrit Dashboard: QTBUG-33444|
|259967,8||Restore value bindings when disabling a Binding element||dev||qt/qtdeclarative||Status: MERGED||+2||0|
|269704,6||Fix tests in qtquickcontrols 1 and 2||dev||qt/qtdeclarative||Status: MERGED||+2||0|
|269831,4||Fix tests in qtquickcontrols 1 and 2||wip/qt6||qt/qtdeclarative||Status: MERGED||+2||0|
|276014,2||Re-add the warnings about deprecated default binding restore mode||5.14||qt/qtdeclarative||Status: MERGED||+2||0|