Describe the bug / To Reproduce
- Start QLC+ (v5, new workspace) with the command line parameter
-w to enable the webaccess.
- Add a
RGB matrix function. Switch to the Virtual Console, add an Animation widget and the RGB matrix function to it.
- Open the webaccess in a web browser and change the Animation algorithm from there (!).
-> The algorithm combo box changes both in the webaccess and locally.
- Now, change the Animation algorithm via the local (!) QLC+ UI.
-> The algorithm combo box changes both in the webaccess and locally.
- Finally, change the Animation algorithm again via the webaccess.
-> The algorithm combo box changes in the webaccess, but no longer locally. Furthermore, this issue seems to affect all CustomComboBoxes (see, for example, also the Universe selection of the Simple Desk).
Expected behaviour
The webaccess and the local UI should stay synchronised (as long as the network connection is not interrupted).
Problem Analysis
First, when connecting fixtures RGB matrix function and/or inspecting the VCAnimation C++ class, it appears that this is only a display bug, since internally, all variables are always correctly set.
Then, when changing the QLC+ specific CustomComboBox to a standard Qt ComboBox in the VCAnimationItem QML file, the described issue also does no longer occur. This hints at a bug in the CustomComboBox.
Since I have little experience with the QML code, this was not straightforward for me to debug, but through much trial-and-error, I found that commenting out currentIndex = index (line 215) fixes the issue.
Why this is the case and whether this really solves the underlying problem still needs to be figured out.
My guess is that this is an edge case where the information propagation slightly differs (user event -> VCAnimationItem QML -> VCAnimation C++ class vs. webaccess event -> WebSocket message to WebAccess C++ class -> VCAnimation C++ class -> VCAnimationItem QML -> CustomComboBox QML -> local UI), resulting in the observed behaviour.
Describe the bug / To Reproduce
-wto enable the webaccess.RGB matrixfunction. Switch to theVirtual Console, add anAnimationwidget and theRGB matrixfunction to it.-> The algorithm combo box changes both in the webaccess and locally.
-> The algorithm combo box changes both in the webaccess and locally.
-> The algorithm combo box changes in the webaccess, but no longer locally. Furthermore, this issue seems to affect all
CustomComboBoxes (see, for example, also the Universe selection of the Simple Desk).Expected behaviour
The webaccess and the local UI should stay synchronised (as long as the network connection is not interrupted).
Problem Analysis
First, when connecting fixtures
RGB matrixfunction and/or inspecting theVCAnimationC++ class, it appears that this is only a display bug, since internally, all variables are always correctly set.Then, when changing the QLC+ specific
CustomComboBoxto a standard QtComboBoxin theVCAnimationItemQML file, the described issue also does no longer occur. This hints at a bug in theCustomComboBox.Since I have little experience with the QML code, this was not straightforward for me to debug, but through much trial-and-error, I found that commenting out
currentIndex = index(line 215) fixes the issue.Why this is the case and whether this really solves the underlying problem still needs to be figured out.
My guess is that this is an edge case where the information propagation slightly differs (
user event -> VCAnimationItem QML -> VCAnimation C++ classvs.webaccess event -> WebSocket message to WebAccess C++ class -> VCAnimation C++ class -> VCAnimationItem QML -> CustomComboBox QML -> local UI), resulting in the observed behaviour.