Christian, you are right. Overriding the trigger() function works for
me!
However, we do not have this documented, and if I am not an exception
here, many developers may run into this issue, so I keep the bug open,
but I will update its description to say that we need documentation.
** Description changed:
Often a CheckBox/Switch is used to show the value of a property outside
of the CheckBox. For example:
Switch {
- id: hiddenSwitch
- checked: !header.exposed
- onClicked: header.exposed = !header.exposed
+ id: hiddenSwitch
+ checked: !header.exposed
+ onClicked: header.exposed = !header.exposed
}
At first look, this code may seem fine, but clicking the switch will
trigger checked = !checked, which breaks the binding, so if
header.exposed updates because of events happening outside of the
switch, the switch will be out-of-sync.
- Perhaps we need to add some properties to the CheckBox:
-
- CheckBox {
- property Object bindTarget
- property string bindProperty
+ --- update 2015-09-11 (thanks Christian) ---
+ It appears to work like this:
+ Switch {
+ id: hiddenSwitch
+ checked: header.exposed
+ function trigger() { header.exposed = !header.exposed; }
}
- and then the behavior of this:
- Switch {
- id: exposedSwitch
- bindTarget: header
- bindProperty: "exposed"
- }
-
- can do what we want: the switch shows the value of "exposed", and
- clicking the switch should update the "exposed" value (which in turn
- will update the state of the switch).
-
- Note that in this case we could not track "!exposed", so if we need
- that, some more complicated solution is needed.
+ so DON'T use the onClicked or onTriggered signal as you would expect,
+ but override the trigger() function. We need to document this.
** Changed in: ubuntu-ui-toolkit (Ubuntu)
Status: Incomplete => Confirmed
** Changed in: ubuntu-ui-toolkit (Ubuntu)
Importance: Undecided => High
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1494387
Title:
CheckBox needs to track external properties
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1494387/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs