Refactored QuantitySpinBox handling into separate class.

This commit is contained in:
Markus Lampert
2017-10-07 19:17:10 -07:00
parent 73eb24ae20
commit f3d48abe2f
3 changed files with 27 additions and 8 deletions

View File

@@ -54,3 +54,18 @@ def updateInputField(obj, prop, widget, onBeforeChange = None):
return True
return False
class QuantitySpinBox:
def __init__(self, widget, obj, propName):
self.obj = obj
self.widget = widget
self.prop = propName
widget.setProperty('unit', getattr(self.obj, self.prop).getUserPreferred()[2])
widget.setProperty('binding', "%s.%s" % (obj.Name, propName))
def updateSpinBox(self):
self.widget.setProperty('rawValue', getattr(self.obj, self.prop).Value)
def updateProperty(self):
return updateInputField(self.obj, self.prop, self.widget)

View File

@@ -535,21 +535,19 @@ class TaskPanelHeightsPage(TaskPanelPage):
return FreeCADGui.PySideUic.loadUi(":/panels/PageHeightsEdit.ui")
def initPage(self, obj):
self.form.safeHeight.setProperty('unit', obj.SafeHeight.getUserPreferred()[2])
self.form.safeHeight.setProperty('binding', "%s.SafeHeight" % obj.Name)
self.form.clearanceHeight.setProperty('unit', obj.ClearanceHeight.getUserPreferred()[2])
self.form.clearanceHeight.setProperty('binding', "%s.ClearanceHeight" % obj.Name)
self.safeHeight = PathGui.QuantitySpinBox(self.form.safeHeight, obj, 'SafeHeight')
self.clearanceHeight = PathGui.QuantitySpinBox(self.form.clearanceHeight, obj, 'ClearanceHeight')
def getTitle(self, obj):
return translate("Path", "Heights")
def getFields(self, obj):
PathGui.updateInputField(obj, 'SafeHeight', self.form.safeHeight)
PathGui.updateInputField(obj, 'ClearanceHeight', self.form.clearanceHeight)
self.safeHeight.updateProperty()
self.clearanceHeight.updateProperty()
def setFields(self, obj):
self.form.safeHeight.setProperty('rawValue', obj.SafeHeight.Value)
self.form.clearanceHeight.setProperty('rawValue', obj.ClearanceHeight.Value)
self.safeHeight.updateSpinBox()
self.clearanceHeight.updateSpinBox()
def getSignalsForUpdate(self, obj):
signals = []