ctrl_panel: Reformat SpinBox text always if valid

The parameter SpinBoxes previously would only update if the interpreted
value was changed, missing cases where the text would have changed but
the value stays the same, e.g. removing trailing decimal zeros.
This commit is contained in:
atse 2024-07-26 17:07:14 +08:00
parent 3ed181403f
commit a6c852369f
1 changed files with 18 additions and 0 deletions

View File

@ -91,6 +91,24 @@ class UnitfulSpinBox(SpinBox):
super().setOpts(**opts)
def editingFinishedEvent(self):
# Modified from pyqtgraph.SpinBox.editingFinishedEvent source
new_text = self.lineEdit().text()
if new_text == self.lastText:
return
try:
val = self.interpret()
except Exception:
return
if val is False:
return
if val == self.val:
self.updateText() # still update text so that values are reformatted pretty-like
return
self.setValue(val, delaySignal=False) ## allow text update so that values are reformatted pretty-like
def formatText(self, prev=None):
"""
In addition to pyqtgraph.SpinBox's formatting, incorporate the