Salome HOME
Add filter for the Object Browser.
[modules/gui.git] / src / SalomeApp / SalomeApp_Application.cxx
index 78e3610f047291ecbced0b0ceb56596952704498..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>
 
@@ -463,8 +464,6 @@ void SalomeApp_Application::updateCommandsStatus()
 //=======================================================================
 void SalomeApp_Application::onHelpAbout()
 {
-  //QAD_MessageBox::info1( myDesktop, tr( "ABOUT" ), tr( "APP_NAME_LONG" ).arg( APP_VERSION ), tr( "BUT_OK" ) );
-
   QMessageBox aDlg( desktop(), "AboutDlg" );
 
   SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
@@ -472,7 +471,7 @@ void SalomeApp_Application::onHelpAbout()
 
   QFontMetrics m( aDlg.font() );
   QImage anImage = aPixmap.convertToImage();
-  int w = m.height() * 3;
+  int w = m.height() * 5;
   anImage = anImage.scale( w, w );
   aPixmap.convertFromImage( anImage );
 
@@ -548,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() );
 }
@@ -702,8 +703,6 @@ void SalomeApp_Application::onStudyClosed( SUIT_Study* )
   emit studyClosed();
 
   activateModule( "" );
-  if ( objectBrowser() != 0 )
-    objectBrowser()->setRootObject( 0 );
 
   saveWindowsGeometry();
 }
@@ -721,13 +720,6 @@ void SalomeApp_Application::beforeCloseDoc( SUIT_Study* s )
     removeWindow( itr.key(), s->id() );
 }
 
-void SalomeApp_Application::afterCloseDoc()
-{
-  updateWindows();
-
-  CAM_Application::afterCloseDoc();
-}
-
 void SalomeApp_Application::updateActions()
 {
   updateCommandsStatus();
@@ -740,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() );
@@ -782,6 +775,13 @@ void SalomeApp_Application::defaultViewManagers( QStringList& ) const
 {
 }
 
+void SalomeApp_Application::afterCloseDoc()
+{
+  updateWindows();
+
+  CAM_Application::afterCloseDoc();
+}
+
 CORBA::ORB_var SalomeApp_Application::orb()
 {
   ORB_INIT& init = *SINGLETON_<ORB_INIT>::Instance();