Public bug reported:

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
}

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
}

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.

** Affects: ubuntu-ui-toolkit (Ubuntu)
     Importance: Undecided
         Status: New

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

Reply via email to