BIM: Exclude viewtree from cached items and add a sanity check

This commit is contained in:
tetektoza
2025-05-06 01:41:28 +02:00
committed by Yorik van Havre
parent 10d476a35b
commit b7718efd5c

View File

@@ -315,9 +315,10 @@ class BIM_Views:
# We reuse the variable later on in "Isolate", to not traverse the tree once
# again
self.allItemsInTree = getAllItemsInTree(vm.tree) + getAllItemsInTree(vm.viewtree)
self.allItemsInTree = getAllItemsInTree(vm.tree)
allItemsInTrees = self.allItemsInTree + getAllItemsInTree(vm.viewtree)
for item in self.allItemsInTree:
for item in allItemsInTrees:
if item.text(0) in objNameSelected:
item.setSelected(True)
if objActive and item.toolTip(0) == objActive.Name:
@@ -469,7 +470,8 @@ class BIM_Views:
for item in self.allItemsInTree:
toolTip = item.toolTip(0)
obj = FreeCAD.ActiveDocument.getObject(toolTip)
obj.ViewObject.Visibility = True
if obj:
obj.ViewObject.Visibility = True
vm = findWidget()
if vm:
@@ -477,10 +479,11 @@ class BIM_Views:
for item in self.allItemsInTree:
toolTip = item.toolTip(0)
obj = FreeCAD.ActiveDocument.getObject(toolTip)
if item not in selectedItems:
obj.ViewObject.Visibility = False
else:
obj.ViewObject.Visibility = True
if obj:
if item not in selectedItems:
obj.ViewObject.Visibility = False
else:
obj.ViewObject.Visibility = True
FreeCAD.ActiveDocument.recompute()