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 e160a6f514
commit 5574559ac6
1 changed files with 18 additions and 0 deletions

View File

@ -91,6 +91,24 @@ class LockableUnitSpinBox(SpinBox):
super().setOpts(**opts) 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): def formatText(self, prev=None):
""" """
In addition to pyqtgraph.SpinBox's formatting, incorporate the In addition to pyqtgraph.SpinBox's formatting, incorporate the