Salome HOME
Add filter for the Object Browser.
[modules/gui.git] / src / SalomeApp / SalomeApp_Application.cxx
index 0593e108507560dde6be8aa2fdbe99e35eaad4ad..7aa8d3d9dd14f8154f67f7359a98287a9a700015 100644 (file)
@@ -18,6 +18,7 @@
 #include "SalomeApp_EventFilter.h"
 #include "SalomeApp_WidgetContainer.h"
 #include "SalomeApp_ModuleDlg.h"
+#include "SalomeApp_OBFilter.h"
 
 #include <LogWindow.h>
 
@@ -546,7 +547,9 @@ void SalomeApp_Application::removeWindow( const int flag, const int studyId )
       sId = activeStudy()->id();
   }
 
+  QWidget* wid = myWindows[flag]->widget( sId );
   myWindows[flag]->remove( sId );
+  delete wid;
 
   setWindowShown( flag, !myWindows[flag]->isEmpty() );
 }
@@ -700,8 +703,6 @@ void SalomeApp_Application::onStudyClosed( SUIT_Study* )
   emit studyClosed();
 
   activateModule( "" );
-  if ( objectBrowser() != 0 )
-    objectBrowser()->setRootObject( 0 );
 
   saveWindowsGeometry();
 }
@@ -731,6 +732,7 @@ QWidget* SalomeApp_Application::createWindow( const int flag )
   if ( flag == WT_ObjectBrowser )
   {
     OB_Browser* ob = new OB_Browser( desktop() );
+    ob->setFilter( new SalomeApp_OBFilter(selectionMgr()) );
 
     ob->setCaption( tr( "OBJECT_BROWSER" ) );
     ob->resize( OBJECT_BROWSER_WIDTH, ob->height() );