assembly: fix feature double clicking

This commit is contained in:
Zheng, Lei 2018-08-19 09:10:35 +08:00
parent c67bf962de
commit 7adcf54874

View File

@ -692,6 +692,10 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop):
AsmElement.make(AsmElement.Selection(Element=vobj.Object, AsmElement.make(AsmElement.Selection(Element=vobj.Object,
Group=owner, Subname=subname+element),undo=True) Group=owner, Subname=subname+element),undo=True)
def doubleClicked(self,_vobj):
from . import mover
return mover.movePart()
class AsmElementSketch(AsmElement): class AsmElementSketch(AsmElement):
def __init__(self,obj,parent): def __init__(self,obj,parent):
@ -2999,9 +3003,17 @@ class ViewProviderAssembly(ViewProviderAsmGroup):
return utils.getIcon(self.__class__) return utils.getIcon(self.__class__)
return System.getIcon(self.ViewObject.Object) return System.getIcon(self.ViewObject.Object)
def doubleClicked(self, _vobj): def doubleClicked(self, vobj):
from . import mover from . import mover
return mover.movePart() sel = FreeCADGui.Selection.getSelection('',0)
if not sel:
return False
if sel[0].getLinkedObject(True) == vobj.Object:
vobj = sel[0].ViewObject
return vobj.Document.setEdit(vobj,1)
if logger.catchDebug('',mover.movePart):
return True
return False
def onExecute(self): def onExecute(self):
if not getattr(self,'_movingPart',None): if not getattr(self,'_movingPart',None):
@ -3025,7 +3037,7 @@ class ViewProviderAssembly(ViewProviderAsmGroup):
def initDraggingPlacement(self): def initDraggingPlacement(self):
if not getattr(self,'_movingPart',None): if not getattr(self,'_movingPart',None):
return return True
self._movingPart.begin() self._movingPart.begin()
return (FreeCADGui.editDocument().EditingTransform, return (FreeCADGui.editDocument().EditingTransform,
self._movingPart.draggerPlacement, self._movingPart.draggerPlacement,
@ -3037,14 +3049,20 @@ class ViewProviderAssembly(ViewProviderAsmGroup):
Assembly.cancelAutoSolve(); Assembly.cancelAutoSolve();
FreeCADGui.Selection.clearSelection() FreeCADGui.Selection.clearSelection()
self.__class__._Busy = True self.__class__._Busy = True
if getattr(self,'_movingPart',None):
FreeCAD.setActiveTransaction('Assembly move') FreeCAD.setActiveTransaction('Assembly move')
return True
def onDragMotion(self): def onDragMotion(self):
return self._movingPart.move() if getattr(self,'_movingPart',None):
self._movingPart.move()
return True
def onDragEnd(self): def onDragEnd(self):
self.__class__._Busy = False self.__class__._Busy = False
if getattr(self,'_movingPart',None):
FreeCAD.closeActiveTransaction() FreeCAD.closeActiveTransaction()
return True
def unsetEdit(self,_vobj,_mode): def unsetEdit(self,_vobj,_mode):
self._movingPart = None self._movingPart = None