From 3b6ba266c474de14241031f7c4824ac4b7b3dd51 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Mon, 28 Oct 2019 18:18:29 +0800 Subject: [PATCH] assembly: use new selection on top core feature --- freecad/asm3/assembly.py | 10 ++++++++++ freecad/asm3/gui.py | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/freecad/asm3/assembly.py b/freecad/asm3/assembly.py index 615a5be..208515d 100644 --- a/freecad/asm3/assembly.py +++ b/freecad/asm3/assembly.py @@ -2494,6 +2494,10 @@ class ViewProviderAsmConstraint(ViewProviderAsmGroup): def attach(self,vobj): super(ViewProviderAsmConstraint,self).attach(vobj) vobj.OnTopWhenSelected = 2 + try: + vobj.SwitchNode.overrideSwitch = 'OverrideVisible' + except Exception: + pass def getIcon(self): return Constraint.getIcon(self.ViewObject.Object) @@ -2602,6 +2606,12 @@ class ViewProviderAsmConstraintGroup(ViewProviderAsmGroup): def dropObjectEx(self,_vobj,obj,_owner,_subname,_elements): AsmPlainGroup.tryMove(obj,self.ViewObject.Object) + def attach(self,vobj): + super(ViewProviderAsmConstraintGroup,self).attach(vobj) + try: + vobj.SwitchNode.overrideSwitch = 'OverrideReset' + except Exception: + pass class AsmElementGroup(AsmGroup): def __init__(self,parent): diff --git a/freecad/asm3/gui.py b/freecad/asm3/gui.py index 5048ef6..152daf3 100644 --- a/freecad/asm3/gui.py +++ b/freecad/asm3/gui.py @@ -38,11 +38,14 @@ class SelectionObserver: if vis: FreeCADGui.Selection.updateSelection(vis,obj,subname) + _ViewParam = FreeCAD.ParamGet('User parameter:BaseApp/Preferences/View') + def setElementVisible(self,docname,objname,subname,vis,presel=False): if FreeCAD.isRestoring(): self.resetElementVisible() return - if not AsmCmdManager.AutoElementVis: + if not AsmCmdManager.AutoElementVis \ + or self._ViewParam.GetBool('ShowSelectionOnTop',False): self.elements.clear() return doc = FreeCAD.getDocument(docname)