Refactored QuantitySpinBox handling into separate class.

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

View File

@@ -43,6 +43,9 @@
</item>
<item row="0" column="1">
<widget class="Gui::QuantitySpinBox" name="safeHeight">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The height above which it is safe to move the tool bit with rapid movements. Below this height all lateral and downward movements are performed with feed rate speeds.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="minimum">
<double>-999999999.000000000000000</double>
</property>
@@ -53,6 +56,9 @@
</item>
<item row="1" column="1">
<widget class="Gui::QuantitySpinBox" name="clearanceHeight">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="minimum">
<double>-999999999.000000000000000</double>
</property>

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 = []