X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSalomeApp%2FSalomeApp_Application.cxx;h=7aa8d3d9dd14f8154f67f7359a98287a9a700015;hb=0ded2c640939024250f0b56bc057ac6c8ce8ebbb;hp=f3c344e6a226e1d6b7222c6448c1b7a65a602bee;hpb=2e750f9ded92337bc3c44e9d7388180974cc4a43;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Application.cxx b/src/SalomeApp/SalomeApp_Application.cxx index f3c344e6a..7aa8d3d9d 100644 --- a/src/SalomeApp/SalomeApp_Application.cxx +++ b/src/SalomeApp/SalomeApp_Application.cxx @@ -18,6 +18,7 @@ #include "SalomeApp_EventFilter.h" #include "SalomeApp_WidgetContainer.h" #include "SalomeApp_ModuleDlg.h" +#include "SalomeApp_OBFilter.h" #include @@ -29,14 +30,15 @@ #include #include -#include "SVTK_ViewManager.h" -#include "SVTK_ViewModel.h" +#include +#include #include #include #include +#include #include #include @@ -216,12 +218,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 +241,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 +265,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 ); @@ -456,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(); @@ -465,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 ); @@ -541,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() ); } @@ -695,10 +703,6 @@ void SalomeApp_Application::onStudyClosed( SUIT_Study* ) emit studyClosed(); activateModule( "" ); - if ( objectBrowser() != 0 ) - { - objectBrowser()->setRootObject( 0 ); - } saveWindowsGeometry(); } @@ -708,6 +712,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::updateActions() { updateCommandsStatus(); @@ -720,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() ); @@ -762,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_::Instance();