diff --git a/src/Mod/Show/TempoVis.py b/src/Mod/Show/TempoVis.py index 113dcc3225..4d34f2f0c2 100644 --- a/src/Mod/Show/TempoVis.py +++ b/src/Mod/Show/TempoVis.py @@ -87,9 +87,13 @@ class TempoVis(FrozenClass): '''hide(doc_obj_or_list): hides objects (sets their Visibility to False). doc_obj_or_list can be a document object, or a list of document objects''' self.modifyVPProperty(doc_obj_or_list, "Visibility", False) + def get_all_dependent(self, doc_obj): + '''get_all_dependent(doc_obj): gets all objects that depend on doc_obj. Groups, Parts and Bodies are not hidden by this.''' + return [o for o in getAllDependent(doc_obj) if not isContainer(o)] + def hide_all_dependent(self, doc_obj): '''hide_all_dependent(doc_obj): hides all objects that depend on doc_obj. Groups, Parts and Bodies are not hidden by this.''' - self.hide( [o for o in getAllDependent(doc_obj) if not isContainer(o)]) + self.hide( self.get_all_dependent(doc_obj) ) def show_all_dependent(self, doc_obj): '''show_all_dependent(doc_obj): shows all objects that depend on doc_obj. This method is probably useless.''' diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 9c7aebd803..0261f93984 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -5081,7 +5081,10 @@ bool ViewProviderSketch::setEdit(int ModNum) "ActiveSketch = App.ActiveDocument.getObject('{sketch_name}')\n" "tv = Show.TempoVis(App.ActiveDocument)\n" "if ActiveSketch.ViewObject.HideDependent:\n" - " tv.hide_all_dependent(ActiveSketch)\n" + " objs = tv.get_all_dependent(ActiveSketch)\n" + " objs = filter(lambda x: not x.TypeId.startswith(\"TechDraw::\"), objs)\n" + " objs = filter(lambda x: not x.TypeId.startswith(\"Drawing::\"), objs)\n" + " tv.hide(objs)\n" "if ActiveSketch.ViewObject.ShowSupport:\n" " tv.show([ref[0] for ref in ActiveSketch.Support])\n" "if ActiveSketch.ViewObject.ShowLinks:\n" diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index 1579d89073..47fcd045fb 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -117,7 +117,8 @@ void ViewProviderPage::show(void) void ViewProviderPage::hide(void) { if (!m_mdiView.isNull()) { //m_mdiView is a QPointer - Gui::getMainWindow()->activatePreviousWindow(); + // https://forum.freecadweb.org/viewtopic.php?f=3&t=22797&p=182614#p182614 + //Gui::getMainWindow()->activatePreviousWindow(); Gui::getMainWindow()->removeWindow(m_mdiView); } ViewProviderDocumentObject::hide();