Added selection observer to enable/disable orientation and alignment buttons.
This commit is contained in:
@@ -31,8 +31,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>378</width>
|
||||
<height>477</height>
|
||||
<width>242</width>
|
||||
<height>129</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
@@ -292,7 +292,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<widget class="QGroupBox" name="orientGroup">
|
||||
<property name="title">
|
||||
<string>Orientation</string>
|
||||
</property>
|
||||
@@ -322,7 +322,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_9">
|
||||
<widget class="QGroupBox" name="alignGroup">
|
||||
<property name="title">
|
||||
<string>Alignment</string>
|
||||
</property>
|
||||
@@ -515,8 +515,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>378</width>
|
||||
<height>514</height>
|
||||
<width>312</width>
|
||||
<height>159</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
@@ -690,7 +690,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>395</width>
|
||||
<height>462</height>
|
||||
<height>430</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
|
||||
@@ -43,7 +43,7 @@ def translate(context, text, disambig=None):
|
||||
|
||||
if True:
|
||||
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
|
||||
PathLog.trackModule(PathLog.thisModule)
|
||||
PathLog.trackModule(PathLog.thisModule())
|
||||
else:
|
||||
PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule())
|
||||
|
||||
@@ -83,6 +83,10 @@ class ViewProvider:
|
||||
def resetTaskPanel(self):
|
||||
self.taskPanel = None
|
||||
|
||||
def unsetEdit(self, arg1, arg2):
|
||||
if self.taskPanel:
|
||||
self.taskPanel.reject(False)
|
||||
|
||||
def getIcon(self):
|
||||
return ":/icons/Path-Job.svg"
|
||||
|
||||
@@ -136,19 +140,21 @@ class TaskPanel:
|
||||
self.obj.Base.Objects[0].ViewObject.Visibility = False
|
||||
|
||||
def preCleanup(self):
|
||||
PathLog.track()
|
||||
FreeCADGui.Selection.removeObserver(self)
|
||||
if self.obj.Base and self.obj.Base.ViewObject:
|
||||
self.obj.Base.ViewObject.Visibility = self.baseVisibility
|
||||
self.obj.Base.Objects[0].ViewObject.Visibility = self.baseOrigVisibility
|
||||
|
||||
def accept(self):
|
||||
PathLog.debug('accept')
|
||||
def accept(self, resetEdit=True):
|
||||
PathLog.track()
|
||||
self.preCleanup()
|
||||
self.getFields()
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
self.cleanup()
|
||||
self.cleanup(resetEdit)
|
||||
|
||||
def reject(self):
|
||||
PathLog.debug('reject')
|
||||
def reject(self, resetEdit=True):
|
||||
PathLog.track()
|
||||
self.preCleanup()
|
||||
FreeCAD.ActiveDocument.abortTransaction()
|
||||
if self.deleteOnReject:
|
||||
@@ -156,13 +162,15 @@ class TaskPanel:
|
||||
FreeCAD.ActiveDocument.openTransaction(translate("Path_Job", "Uncreate Job"))
|
||||
FreeCAD.ActiveDocument.removeObject(self.obj.Name)
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
self.cleanup()
|
||||
self.cleanup(resetEdit)
|
||||
return True
|
||||
|
||||
def cleanup(self):
|
||||
def cleanup(self, resetEdit):
|
||||
PathLog.track()
|
||||
self.vobj.Proxy.resetTaskPanel()
|
||||
FreeCADGui.Control.closeDialog()
|
||||
FreeCADGui.ActiveDocument.resetEdit()
|
||||
if resetEdit:
|
||||
FreeCADGui.ActiveDocument.resetEdit()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
def updateTooltips(self):
|
||||
@@ -426,6 +434,27 @@ class TaskPanel:
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
FreeCADGui.Selection.addSelection(selObject, selFeature)
|
||||
|
||||
def alignSetOrigin(self):
|
||||
pass
|
||||
def alignMoveToOrigin(self):
|
||||
pass
|
||||
|
||||
def updateSelection(self):
|
||||
sel = FreeCADGui.Selection.getSelectionEx()
|
||||
if len(sel) == 1 and len(sel[0].SubObjects) == 1:
|
||||
if 'Vertex' == sel[0].SubObjects[0].ShapeType:
|
||||
self.form.orientGroup.setEnabled(False)
|
||||
self.form.alignGroup.setEnabled(True)
|
||||
self.form.setOrigin.setEnabled(True)
|
||||
self.form.moveToOrigin.setEnabled(True)
|
||||
else:
|
||||
self.form.orientGroup.setEnabled(True)
|
||||
self.form.setOrigin.setEnabled(False)
|
||||
self.form.moveToOrigin.setEnabled(False)
|
||||
else:
|
||||
self.form.orientGroup.setEnabled(False)
|
||||
self.form.alignGroup.setEnabled(False)
|
||||
|
||||
def setupUi(self):
|
||||
self.setFields()
|
||||
|
||||
@@ -452,11 +481,32 @@ class TaskPanel:
|
||||
self.operationSelect()
|
||||
self.toolControllerSelect()
|
||||
|
||||
# Stock, Orientation and Alignment
|
||||
self.form.stockGroup.hide()
|
||||
self.form.centerInStock.hide()
|
||||
self.form.centerInStockXY.hide()
|
||||
|
||||
self.form.orientXAxis.clicked.connect(lambda: self.orientSelected(FreeCAD.Vector(1, 0, 0)))
|
||||
self.form.orientYAxis.clicked.connect(lambda: self.orientSelected(FreeCAD.Vector(0, 1, 0)))
|
||||
self.form.orientZAxis.clicked.connect(lambda: self.orientSelected(FreeCAD.Vector(0, 0, 1)))
|
||||
|
||||
self.form.setOrigin.clicked.connect(self.alignSetOrigin)
|
||||
self.form.moveToOrigin.clicked.connect(self.alignMoveToOrigin)
|
||||
self.updateSelection()
|
||||
|
||||
def open(self):
|
||||
FreeCADGui.Selection.addObserver(self)
|
||||
|
||||
# SelectionObserver interface
|
||||
def addSelection(self, doc, obj, sub, pnt):
|
||||
self.updateSelection()
|
||||
def removeSelection(self, doc, obj, sub):
|
||||
self.updateSelection()
|
||||
def setSelection(self, doc):
|
||||
self.updateSelection()
|
||||
def clearSelection(self, doc):
|
||||
self.updateSelection()
|
||||
|
||||
def Create(base, template=None):
|
||||
'''Create(base, template) ... creates a job instance for the given base object
|
||||
using template to configure it.'''
|
||||
|
||||
Reference in New Issue
Block a user