From 5ab2f3ea7effaa718df9770b6ba5b30dcd52fde0 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 24 Oct 2024 14:00:54 +0200 Subject: [PATCH] Assembly: CommandInsertLink: Hide hidden objects --- src/Mod/Assembly/CommandInsertLink.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Mod/Assembly/CommandInsertLink.py b/src/Mod/Assembly/CommandInsertLink.py index a5312339b6..414bff1543 100644 --- a/src/Mod/Assembly/CommandInsertLink.py +++ b/src/Mod/Assembly/CommandInsertLink.py @@ -91,6 +91,7 @@ class TaskAssemblyInsertLink(QtCore.QObject): self.assembly = assembly self.view = view self.doc = App.ActiveDocument + self.showHidden = False self.form = Gui.PySideUic.loadUi(":/panels/TaskAssemblyInsertLink.ui") self.form.installEventFilter(self) @@ -196,6 +197,9 @@ class TaskAssemblyInsertLink(QtCore.QObject): continue # Prevent dependency loop. # For instance if asm1/asm2 with asm2 active, we don't want to have asm1 in the list + if not obj.ViewObject.ShowInTree and not self.showHidden: + continue + if ( obj.isDerivedFrom("Part::Feature") or obj.isDerivedFrom("App::Part") @@ -565,9 +569,26 @@ class TaskAssemblyInsertLink(QtCore.QObject): self.form.partList.setItemSelected(item, False) return True + else: + menu = QtWidgets.QMenu() + + # Add the checkbox action + showHiddenAction = QtWidgets.QAction("Show objects hidden in tree view", menu) + showHiddenAction.setCheckable(True) + showHiddenAction.setChecked(self.showHidden) + + # Connect the action to toggle `self.showHidden` + showHiddenAction.toggled.connect(self.toggleShowHidden) + menu.addAction(showHiddenAction) + menu.exec_(event.globalPos()) + return True return super().eventFilter(watched, event) + def toggleShowHidden(self, checked): + self.showHidden = checked + self.buildPartList() + def getTranslationVec(self, part): bb = part.Shape.BoundBox if bb: