input-widget: connections are erroneously allowed to read-only values
Bug description
Switches and checkboxes (and likely others) allow the user to connect them to data lake variables that should be read-only (e.g. MAVLink message fields, and compound variables), and do not accurately reflect the state of those variables, or allow controlling their source (so is just asking for user confusion).
Steps to reproduce
- Create a checkbox widget
- Connect it to a MAVLink or compound data-lake variable
- It "works" (as in, it is allowed), but does not accurately display its value (even if it is a value the widget can represent)
- Clicking the widget to change its variable "works", but then switches back to the real value as soon as it is next updated, and there is no actual connection / back-propagation to the input source, which a user might expect if they're able to "control" an output
Primary pain point(s)
Things are allowed that don't make sense, which then leads the user to expect some functionalities are possible, which then leads to further confusion.
While those widgets are intended for inputs, we should filter out connections to output/read-only variables.
Additional context
Longer term, it would be nice to generalise/expand the system as a whole to allow those widgets to act as status indicators (as suggested here), in which case they should at least be made disabled / display only when connected to something that is not a valid input.
Relevant to situations like this forum comment
Prerequisites
- [x] I have checked to make sure that a similar request has not already been filed or fixed.