do not hide any drawing elements when entering edit mode of a sketch

This commit is contained in:
wmayer
2017-07-15 15:47:22 +02:00
parent 2b82bc6132
commit 1d83d179ca
3 changed files with 11 additions and 3 deletions

View File

@@ -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.'''

View File

@@ -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"

View File

@@ -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();