]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fixed bug IPAL8999. Method SalomeApp_Study::closeDocument() invoked twice.
authorstv <stv@opencascade.com>
Tue, 31 May 2005 06:45:13 +0000 (06:45 +0000)
committerstv <stv@opencascade.com>
Tue, 31 May 2005 06:45:13 +0000 (06:45 +0000)
Module selection ComboBox and ToolButtons placed in separate tool bar without general update mechanism.

src/SalomeApp/SalomeApp_Application.cxx
src/SalomeApp/SalomeApp_Application.h

index 26cfbedcd5fae732dfff2890203ff4efd02fedbd..78e3610f047291ecbced0b0ceb56596952704498 100644 (file)
 #include <OCCViewer_ViewManager.h>
 #include <SOCC_ViewModel.h>
 
-#include "SVTK_ViewManager.h"
-#include "SVTK_ViewModel.h"
+#include <SVTK_ViewModel.h>
+#include <SVTK_ViewManager.h>
 
 #include <STD_TabDesktop.h>
 
 #include <SUIT_Tools.h>
 #include <SUIT_Session.h>
 
+#include <QtxToolBar.h>
 #include <QtxDockAction.h>
 
 #include <OB_Browser.h>
@@ -216,12 +217,14 @@ void SalomeApp_Application::createActions()
   QPixmap defIcon = resMgr->loadPixmap( "SalomeApp", tr( "APP_DEFAULT_ICO" ) );
   if ( defIcon.isNull() )
     defIcon = QPixmap( imageEmptyIcon );
+
   // default icon for any module
   QPixmap modIcon = resMgr->loadPixmap( "SalomeApp", tr( "APP_MODULE_ICO" ) );
   if ( modIcon.isNull() )
     modIcon = QPixmap( imageEmptyIcon );
 
-  int modTBar = createTool( tr( "INF_TOOLBAR_MODULES" ) );
+  QToolBar* modTBar = new QtxToolBar( true, desk );
+  modTBar->setLabel( tr( "INF_TOOLBAR_MODULES" ) );
 
   QActionGroup* modGroup = new QActionGroup( this );
   modGroup->setExclusive( true );
@@ -237,8 +240,8 @@ void SalomeApp_Application::createActions()
 
   const int iconSize = 20;
 
-  createTool( modGroup, modTBar );
-  createTool( separator(), modTBar );
+  modGroup->addTo( modTBar );
+  modTBar->addSeparator();
 
   QStringList modList;
   modules( modList, false );
@@ -261,12 +264,16 @@ void SalomeApp_Application::createActions()
     icon.convertFromImage( icon.convertToImage().smoothScale( iconSize, iconSize, QImage::ScaleMin ) );
 
     QAction* a = createAction( -1, *it, icon, *it, tr( "PRP_MODULE" ).arg( *it ), 0, desk, true );
-    createTool( a, modTBar );
+    a->addTo( modTBar );
     modGroup->add( a );
 
     myActions.insert( *it, a );
   }
 
+  SUIT_Tools::simplifySeparators( modTBar );
+
+  // New window
+
   int windowMenu = createMenu( tr( "MEN_DESK_WINDOW" ), -1, 100 );
   int newWinMenu = createMenu( tr( "MEN_DESK_NEWWINDOW" ), windowMenu, -1, 0 );
   createMenu( separator(), windowMenu, -1, 1 );
@@ -706,6 +713,14 @@ QString SalomeApp_Application::getFileFilter() const
   return "(*.hdf)";
 }
 
+void SalomeApp_Application::beforeCloseDoc( SUIT_Study* s )
+{
+  CAM_Application::beforeCloseDoc( s );
+
+  for ( WindowMap::ConstIterator itr = myWindows.begin(); s && itr != myWindows.end(); ++itr )
+    removeWindow( itr.key(), s->id() );
+}
+
 void SalomeApp_Application::afterCloseDoc()
 {
   updateWindows();
index 5709b9a5e151efaef110384f9ae4ca76d6a0e23b..152adac404fc70dd0b93a7ac7237cc7766f6fd67 100644 (file)
@@ -111,6 +111,7 @@ protected:
 
   virtual void                        onSelectionChanged();
 
+  virtual void                        beforeCloseDoc( SUIT_Study* );
   virtual void                        afterCloseDoc();
 
 private slots: