assembly: auto recompute on undo/redo while dragging
This commit is contained in:
parent
eb06ef8fbd
commit
7c2ebac386
|
@ -7,20 +7,24 @@ class Assembly3Workbench(FreeCADGui.Workbench):
|
|||
|
||||
def __init__(self):
|
||||
self.observer = None
|
||||
self.docObserver = None
|
||||
|
||||
def Activated(self):
|
||||
self.observer.attach()
|
||||
FreeCAD.addDocumentObserver(self.docObserver)
|
||||
from asm3.gui import AsmCmdManager
|
||||
for cmd in AsmCmdManager.getInfo().Types:
|
||||
cmd.workbenchActivated()
|
||||
|
||||
def Deactivated(self):
|
||||
self.observer.detach()
|
||||
FreeCAD.removeDocumentObserver(self.docObserver)
|
||||
from asm3.gui import AsmCmdManager
|
||||
for cmd in AsmCmdManager.getInfo().Types:
|
||||
cmd.workbenchDeactivated()
|
||||
|
||||
def Initialize(self):
|
||||
from asm3.assembly import AsmDocumentObserver
|
||||
from asm3.gui import AsmCmdManager,SelectionObserver
|
||||
cmdSet = set()
|
||||
for name,cmds in AsmCmdManager.Toolbars.items():
|
||||
|
@ -30,6 +34,7 @@ class Assembly3Workbench(FreeCADGui.Workbench):
|
|||
cmdSet.update(cmds)
|
||||
self.appendMenu(name,[cmd.getName() for cmd in cmds])
|
||||
self.observer = SelectionObserver(cmdSet)
|
||||
self.docObserver = AsmDocumentObserver()
|
||||
# FreeCADGui.addPreferencePage(
|
||||
# ':/assembly3/ui/assembly3_prefs.ui','Assembly3')
|
||||
|
||||
|
|
15
assembly.py
15
assembly.py
|
@ -1665,6 +1665,21 @@ def movePart(useCenterballDragger=None):
|
|||
vobj.Proxy._movingPart = AsmMovingPart(*ret)
|
||||
return doc.setEdit(vobj,1)
|
||||
|
||||
class AsmDocumentObserver:
|
||||
def checkMovingPart(self):
|
||||
doc = FreeCADGui.editDocument()
|
||||
if not doc:
|
||||
return
|
||||
vobj = doc.getInEdit()
|
||||
if vobj and isTypeOf(vobj.Object,Assembly):
|
||||
vobj.Object.recompute(True)
|
||||
|
||||
def slotUndoDocument(self,_doc):
|
||||
self.checkMovingPart()
|
||||
|
||||
def slotRedoDocument(self,_doc):
|
||||
self.checkMovingPart()
|
||||
|
||||
|
||||
class ViewProviderAssembly(ViewProviderAsmGroup):
|
||||
def __init__(self,vobj):
|
||||
|
|
Loading…
Reference in New Issue
Block a user