diff options
author | Stefan `Sec` Zehl <sec@42.org> | 2020-02-02 15:12:03 +0100 |
---|---|---|
committer | Derek Kozel <derek.kozel@gmail.com> | 2020-03-29 16:17:04 +0100 |
commit | 3b30c5da8b464f32b762d750be2896149f81ea28 (patch) | |
tree | 94b50cd9df247df2adff853dbbfd30ef35b58163 | |
parent | 3867f4b29b9b22704250566fed7cc5b800d0fd28 (diff) |
RangeWidget: avoid double-changes
-rwxr-xr-x | gr-qtgui/python/qtgui/range.py.cmakein | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gr-qtgui/python/qtgui/range.py.cmakein b/gr-qtgui/python/qtgui/range.py.cmakein index da9701a8c0..85a2319fe5 100755 --- a/gr-qtgui/python/qtgui/range.py.cmakein +++ b/gr-qtgui/python/qtgui/range.py.cmakein @@ -206,8 +206,9 @@ class RangeWidget(QtWidgets.QWidget): layout.addWidget(self.counter) self.setLayout(layout) - # Flag to ignore the slider event caused by a change to the counter. + # Flags to ignore the slider event caused by a change to the counter (and vice versa). self.ignoreSlider = False + self.ignoreCounter = False self.range = ranges def sliderChanged(self, value): @@ -215,6 +216,7 @@ class RangeWidget(QtWidgets.QWidget): # If the counter was changed, ignore any of these events if not self.ignoreSlider: # Value is already float. Just set the counter + self.ignoreCounter = True self.counter.setValue(self.rangeType(value)) self.notifyChanged(self.rangeType(value)) self.ignoreSlider = False @@ -231,8 +233,14 @@ class RangeWidget(QtWidgets.QWidget): self.ignoreSlider = True self.slider.setValue(new) - self.notifyChanged(self.rangeType(value)) + if not self.ignoreCounter: + self.notifyChanged(self.rangeType(value)) + self.ignoreCounter = False + def setValue(self, value): + """ Wrapper to handle changing the value externally """ + self.ignoreSlider = True + self.counter.setValue(value) if __name__ == "__main__": from PyQt4 import Qt |