#include "SalomeApp_EventFilter.h"
#include "SalomeApp_WidgetContainer.h"
#include "SalomeApp_ModuleDlg.h"
+#include "SalomeApp_OBFilter.h"
#include <LogWindow.h>
#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>
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 );
const int iconSize = 20;
- createTool( modGroup, modTBar );
- createTool( separator(), modTBar );
+ modGroup->addTo( modTBar );
+ modTBar->addSeparator();
QStringList modList;
modules( modList, false );
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 );
+ QMap<int, int> accelMap;
+ accelMap[NewGLViewId] = ALT+Key_G;
+ accelMap[NewPlot2dId] = ALT+Key_P;
+ accelMap[NewOCCViewId] = ALT+Key_O;
+ accelMap[NewVTKViewId] = ALT+Key_K;
+
for ( int id = NewGLViewId; id <= NewVTKViewId; id++ )
{
QAction* a = createAction( id, tr( QString( "NEW_WINDOW_%1" ).arg( id - NewGLViewId ) ), QIconSet(),
- tr( QString( "NEW_WINDOW_%1" ).arg( id - NewGLViewId ) ),
- tr( QString( "NEW_WINDOW_%1" ).arg( id - NewGLViewId ) ),
- 0, desk, false, this, SLOT( onNewWindow() ) );
+ tr( QString( "NEW_WINDOW_%1" ).arg( id - NewGLViewId ) ),
+ tr( QString( "NEW_WINDOW_%1" ).arg( id - NewGLViewId ) ),
+ accelMap.contains( id ) ? accelMap[id] : 0, desk, false, this, SLOT( onNewWindow() ) );
createMenu( a, newWinMenu, -1 );
}
//=======================================================================
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();
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 );
sId = activeStudy()->id();
}
+ QWidget* wid = myWindows[flag]->widget( sId );
myWindows[flag]->remove( sId );
+ delete wid;
setWindowShown( flag, !myWindows[flag]->isEmpty() );
}
emit studyClosed();
activateModule( "" );
- if ( objectBrowser() != 0 )
- objectBrowser()->setRootObject( 0 );
saveWindowsGeometry();
}
return "(*.hdf)";
}
-void SalomeApp_Application::afterCloseDoc()
+void SalomeApp_Application::beforeCloseDoc( SUIT_Study* s )
{
- updateWindows();
+ CAM_Application::beforeCloseDoc( s );
- CAM_Application::afterCloseDoc();
+ for ( WindowMap::ConstIterator itr = myWindows.begin(); s && itr != myWindows.end(); ++itr )
+ removeWindow( itr.key(), s->id() );
}
void SalomeApp_Application::updateActions()
if ( flag == WT_ObjectBrowser )
{
OB_Browser* ob = new OB_Browser( desktop() );
-
+ ob->setAutoUpdate( true );
+ ob->setAutoOpenLevel( 1 );
ob->setCaption( tr( "OBJECT_BROWSER" ) );
ob->resize( OBJECT_BROWSER_WIDTH, ob->height() );
- ob->setAutoUpdate( true );
+ ob->setFilter( new SalomeApp_OBFilter( selectionMgr() ) );
// Create OBSelector
new SalomeApp_OBSelector( ob, mySelMgr );
{
}
+void SalomeApp_Application::afterCloseDoc()
+{
+ updateWindows();
+
+ CAM_Application::afterCloseDoc();
+}
+
CORBA::ORB_var SalomeApp_Application::orb()
{
ORB_INIT& init = *SINGLETON_<ORB_INIT>::Instance();