gui: eliminate unnecssary warning in auto element vis

This commit is contained in:
Zheng, Lei 2018-05-03 18:13:44 +08:00
parent 61466dce67
commit ce6b13bdd1

20
gui.py
View File

@ -19,8 +19,7 @@ class SelectionObserver:
for cmd in self.cmds: for cmd in self.cmds:
cmd.checkActive() cmd.checkActive()
def _setElementVisible(self,docname,objname,subname,vis): def _setElementVisible(self,obj,subname,vis):
obj = FreeCAD.getDocument(docname).getObject(objname)
sobj = obj.getSubObject(subname,1) sobj = obj.getSubObject(subname,1)
from .assembly import isTypeOf,AsmConstraint,\ from .assembly import isTypeOf,AsmConstraint,\
AsmElement,AsmElementLink AsmElement,AsmElementLink
@ -43,6 +42,12 @@ class SelectionObserver:
if not AsmCmdManager.AutoElementVis: if not AsmCmdManager.AutoElementVis:
self.elements.clear() self.elements.clear()
return return
doc = FreeCAD.getDocument(docname)
if not doc:
return
obj = doc.getObject(objname)
if not obj:
return
key = (docname,objname,subname) key = (docname,objname,subname)
val = None val = None
if not vis: if not vis:
@ -50,7 +55,7 @@ class SelectionObserver:
if val is None or (presel and val): if val is None or (presel and val):
return return
if logger.catchWarn('',self._setElementVisible, if logger.catchWarn('',self._setElementVisible,
docname,objname,subname,vis) is False and presel: obj,subname,vis) is False and presel:
return return
if not vis: if not vis:
self.elements.pop(key,None) self.elements.pop(key,None)
@ -63,8 +68,13 @@ class SelectionObserver:
elements = list(self.elements) elements = list(self.elements)
self.elements.clear() self.elements.clear()
for docname,objname,subname in elements: for docname,objname,subname in elements:
logger.catchWarn('',self._setElementVisible, doc = FreeCAD.getDocument(docname)
docname,objname,subname,False) if not doc:
continue
obj = doc.getObject(objname)
if not obj:
continue
logger.catchWarn('',self._setElementVisible,obj,subname,False)
def addSelection(self,docname,objname,subname,_pos): def addSelection(self,docname,objname,subname,_pos):
self.onChanged() self.onChanged()