X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSalomeApp%2FSalomeApp_Application.cxx;h=d36516b01c1f25b010da46642082a32f029ba47b;hb=8066e2c936b665429c3c78e361d1226df5fa1cd2;hp=f0341870936d972e47417afce84ba12b00df6d19;hpb=70b83613dee0a19bf22da0588e74c7f8172895a9;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Application.cxx b/src/SalomeApp/SalomeApp_Application.cxx index f03418709..d36516b01 100644 --- a/src/SalomeApp/SalomeApp_Application.cxx +++ b/src/SalomeApp/SalomeApp_Application.cxx @@ -48,6 +48,7 @@ #include #include +#include #include #include @@ -85,6 +86,9 @@ #include "SALOME_ListIteratorOfListIO.hxx" #include "SALOME_ListIO.hxx" +#include "ToolsGUI_CatalogGeneratorDlg.h" +#include "ToolsGUI_RegWidget.h" + #define OBJECT_BROWSER_WIDTH 300 /*!Image for empty icon.*/ @@ -145,6 +149,30 @@ myPrefs( 0 ) mySelMgr = new SalomeApp_SelectionMgr( this ); + myAccel = new SUIT_Accel( desktop() ); + myAccel->setActionKey( SUIT_Accel::PanLeft, CTRL+Key_Left, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanRight, CTRL+Key_Right, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanUp, CTRL+Key_Up, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanDown, CTRL+Key_Down, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomIn, CTRL+Key_Plus, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomOut, CTRL+Key_Minus, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomFit, CTRL+Key_Asterisk, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateLeft, ALT+Key_Left, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateRight, ALT+Key_Right, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateUp, ALT+Key_Up, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateDown, ALT+Key_Down, OCCViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanLeft, CTRL+Key_Left, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanRight, CTRL+Key_Right, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanUp, CTRL+Key_Up, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::PanDown, CTRL+Key_Down, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomIn, CTRL+Key_Plus, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomOut, CTRL+Key_Minus, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::ZoomFit, CTRL+Key_Asterisk, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateLeft, ALT+Key_Left, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateRight, ALT+Key_Right, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateUp, ALT+Key_Up, VTKViewer_Viewer::Type() ); + myAccel->setActionKey( SUIT_Accel::RotateDown, ALT+Key_Down, VTKViewer_Viewer::Type() ); + connect( desk, SIGNAL( closing( SUIT_Desktop*, QCloseEvent* ) ), this, SLOT( onDesktopClosing( SUIT_Desktop*, QCloseEvent* ) ) ); @@ -259,12 +287,16 @@ bool SalomeApp_Application::activateModule( const QString& modName ) if ( actName == modName ) return true; + putInfo( tr( "ACTIVATING_MODULE" ).arg( modName ) ); + saveWindowsGeometry(); bool status = CAM_Application::activateModule( modName ); updateModuleActions(); + putInfo( "" ); + if ( !status ) return false; @@ -287,12 +319,12 @@ void SalomeApp_Application::createActions() SUIT_Desktop* desk = desktop(); SUIT_ResourceMgr* resMgr = resourceMgr(); - + //! Dump study createAction( DumpStudyId, tr( "TOT_DESK_FILE_DUMP_STUDY" ), QIconSet(), tr( "MEN_DESK_FILE_DUMP_STUDY" ), tr( "PRP_DESK_FILE_DUMP_STUDY" ), 0, desk, false, this, SLOT( onDumpStudy() ) ); - + //! Load script createAction( LoadScriptId, tr( "TOT_DESK_FILE_LOAD_SCRIPT" ), QIconSet(), tr( "MEN_DESK_FILE_LOAD_SCRIPT" ), tr( "PRP_DESK_FILE_LOAD_SCRIPT" ), @@ -308,6 +340,16 @@ void SalomeApp_Application::createActions() tr( "MEN_DESK_PREFERENCES" ), tr( "PRP_DESK_PREFERENCES" ), CTRL+Key_P, desk, false, this, SLOT( onPreferences() ) ); + //! Catalog Generator + createAction( CatalogGenId, tr( "TOT_DESK_CATALOG_GENERATOR" ), QIconSet(), + tr( "MEN_DESK_CATALOG_GENERATOR" ), tr( "PRP_DESK_CATALOG_GENERATOR" ), + 0, desk, false, this, SLOT( onCatalogGen() ) ); + + //! Registry Display + createAction( RegDisplayId, tr( "TOT_DESK_REGISTRY_DISPLAY" ), QIconSet(), + tr( "MEN_DESK_REGISTRY_DISPLAY" ), tr( "PRP_DESK_REGISTRY_DISPLAY" ), + 0, desk, false, this, SLOT( onRegDisplay() ) ); + //! MRU QtxMRUAction* mru = new QtxMRUAction( tr( "TOT_DESK_MRU" ), tr( "MEN_DESK_MRU" ), desk ); connect( mru, SIGNAL( activated( QString ) ), this, SLOT( onMRUActivated( QString ) ) ); @@ -405,6 +447,11 @@ void SalomeApp_Application::createActions() createMenu( PreferencesId, fileMenu, 15, -1 ); createMenu( separator(), fileMenu, -1, 15, -1 ); + int toolsMenu = createMenu( tr( "MEN_DESK_TOOLS" ), -1, -1, 50 ); + createMenu( CatalogGenId, toolsMenu, 10, -1 ); + createMenu( RegDisplayId, toolsMenu, 10, -1 ); + createMenu( separator(), toolsMenu, -1, 15, -1 ); + /* createMenu( separator(), fileMenu, -1, 100, -1 ); createMenu( MRUId, fileMenu, 100, -1 ); @@ -551,17 +598,17 @@ bool SalomeApp_Application::onOpenDoc( const QString& aName ) /*!SLOT. Load document.*/ void SalomeApp_Application::onLoadDoc() -{ +{ QString name, studyname, ext; - + STD_LoadStudiesDlg aDlg( desktop(), TRUE); std::vector List = studyMgr()->GetOpenStudies(); - + SUIT_Session* aSession = SUIT_Session::session(); QPtrList aAppList = aSession->applications(); SUIT_Application* aApp = 0; - + for (unsigned int ind = 0; ind < List.size(); ind++) { studyname = List[ind].c_str(); //Add to list only unloaded studies @@ -575,22 +622,22 @@ void SalomeApp_Application::onLoadDoc() if ( !isAlreadyOpen ) aDlg.ListComponent->insertItem( studyname ); } - + int retVal = aDlg.exec(); studyname = aDlg.ListComponent->currentText(); if (retVal == QDialog::Rejected) return; - + if ( studyname.isNull() || studyname.isEmpty() ) return; - + name = studyname; - name.replace( QRegExp(":"), "/" ); + name.replace( QRegExp(":"), "/" ); if(onLoadDoc(name)) { updateWindows(); - updateViewManagers(); + updateViewManagers(); updateObjectBrowser(true); } } @@ -623,19 +670,19 @@ void SalomeApp_Application::onSelection() } /*!SLOT. Copy objects to study maneger from selection maneger..*/ -void SalomeApp_Application::onCopy() +void SalomeApp_Application::onCopy() { SALOME_ListIO list; SalomeApp_SelectionMgr* mgr = selectionMgr(); mgr->selectedObjects(list); - + SalomeApp_Study* study = dynamic_cast(activeStudy()); if(study == NULL) return; - + _PTR(Study) stdDS = study->studyDS(); if(!stdDS) return; - SALOME_ListIteratorOfListIO it( list ); + SALOME_ListIteratorOfListIO it( list ); if(it.More()) { _PTR(SObject) so = stdDS->FindObjectID(it.Value()->getEntry()); @@ -649,19 +696,19 @@ void SalomeApp_Application::onCopy() } /*!SLOT. Paste objects to study maneger from selection manager.*/ -void SalomeApp_Application::onPaste() +void SalomeApp_Application::onPaste() { SALOME_ListIO list; SalomeApp_SelectionMgr* mgr = selectionMgr(); mgr->selectedObjects(list); - + SalomeApp_Study* study = dynamic_cast(activeStudy()); if(study == NULL) return; - + _PTR(Study) stdDS = study->studyDS(); if(!stdDS) return; - - SALOME_ListIteratorOfListIO it( list ); + + SALOME_ListIteratorOfListIO it( list ); if(it.More()) { _PTR(SObject) so = stdDS->FindObjectID(it.Value()->getEntry()); @@ -681,37 +728,37 @@ void SalomeApp_Application::onSelectionChanged() SALOME_ListIO list; SalomeApp_SelectionMgr* mgr = selectionMgr(); mgr->selectedObjects(list); - + SalomeApp_Study* study = dynamic_cast(activeStudy()); if(study == NULL) return; - + _PTR(Study) stdDS = study->studyDS(); if(!stdDS) return; - - QAction* qaction; - SALOME_ListIteratorOfListIO it( list ); + QAction* qaction; + + SALOME_ListIteratorOfListIO it( list ); if(it.More() && list.Extent() == 1) { _PTR(SObject) so = stdDS->FindObjectID(it.Value()->getEntry()); - qaction = action(EditCopyId); - if(studyMgr()->CanCopy(so) ) qaction->setEnabled(true); - else qaction->setEnabled(false); - + qaction = action(EditCopyId); + if(studyMgr()->CanCopy(so) ) qaction->setEnabled(true); + else qaction->setEnabled(false); + qaction = action(EditPasteId); if( studyMgr()->CanPaste(so) ) qaction->setEnabled(true); else qaction->setEnabled(false); - } + } else { - qaction = action(EditCopyId); - qaction->setEnabled(false); + qaction = action(EditCopyId); + qaction->setEnabled(false); qaction = action(EditPasteId); qaction->setEnabled(false); } -} +} -/*!Update object browser.*/ +/*!Update object browser.*/ void SalomeApp_Application::onRefresh() { updateObjectBrowser( true ); @@ -749,7 +796,7 @@ bool SalomeApp_Application::useStudy(const QString& theName) } /*!Set active study. - *\param stupa - SUIT_Study. + *\param study - SUIT_Study. */ void SalomeApp_Application::setActiveStudy( SUIT_Study* study ) { @@ -799,15 +846,15 @@ void SalomeApp_Application::updateCommandsStatus() a = action( LoadScriptId ); if ( a ) a->setEnabled( activeStudy() ); - + a = action( PropertiesId ); if( a ) a->setEnabled( activeStudy() ); - + a = action(EditCopyId); - a->setEnabled(false); + a->setEnabled(false); a = action(EditPasteId); - a->setEnabled(false); + a->setEnabled(false); } //======================================================================= @@ -926,7 +973,7 @@ QWidget* SalomeApp_Application::getWindow( const int flag, const int studyId ) return wid; } -/*!Check*/ +/*!Check is window visible?(with identificator \a type)*/ bool SalomeApp_Application::isWindowVisible( const int type ) const { bool res = false; @@ -938,6 +985,10 @@ bool SalomeApp_Application::isWindowVisible( const int type ) const return res; } +/*!Sets window show or hide. + *\param type - window identificator. + *\param on - true/false (window show/hide) + */ void SalomeApp_Application::setWindowShown( const int type, const bool on ) { if ( !desktop() || !myWindows.contains( type ) ) @@ -957,6 +1008,7 @@ OB_Browser* SalomeApp_Application::objectBrowser() return ob; } +/*!Gets "LogWindow".*/ LogWindow* SalomeApp_Application::logWindow() { LogWindow* lw = 0; @@ -966,6 +1018,7 @@ LogWindow* SalomeApp_Application::logWindow() return lw; } +/*!Get "PythonConsole"*/ PythonConsole* SalomeApp_Application::pythonConsole() { PythonConsole* console = 0; @@ -975,11 +1028,13 @@ PythonConsole* SalomeApp_Application::pythonConsole() return console; } +/*!Gets preferences.*/ SalomeApp_Preferences* SalomeApp_Application::preferences() const { return preferences( false ); } +/*!Gets view manager*/ SUIT_ViewManager* SalomeApp_Application::getViewManager( const QString& vmType, const bool create ) { SUIT_ViewManager* aVM = viewManager( vmType ); @@ -1001,6 +1056,7 @@ SUIT_ViewManager* SalomeApp_Application::getViewManager( const QString& vmType, return aVM; } +/*!Create view manager.*/ SUIT_ViewManager* SalomeApp_Application::createViewManager( const QString& vmType ) { SUIT_ResourceMgr* resMgr = resourceMgr(); @@ -1059,6 +1115,7 @@ void SalomeApp_Application::onCloseView( SUIT_ViewManager* theVM ) removeViewManager( theVM ); } +/*!Private SLOT. On study created.*/ void SalomeApp_Application::onStudyCreated( SUIT_Study* theStudy ) { SUIT_DataObject* aRoot = 0; @@ -1075,6 +1132,7 @@ void SalomeApp_Application::onStudyCreated( SUIT_Study* theStudy ) activateWindows(); } +/*!Private SLOT. On study opened.*/ void SalomeApp_Application::onStudyOpened( SUIT_Study* theStudy ) { SUIT_DataObject* aRoot = 0; @@ -1099,6 +1157,7 @@ void SalomeApp_Application::onStudySaved( SUIT_Study* ) emit studySaved(); } +/*!Private SLOT. On study closed.*/ void SalomeApp_Application::onStudyClosed( SUIT_Study* ) { emit studyClosed(); @@ -1108,6 +1167,7 @@ void SalomeApp_Application::onStudyClosed( SUIT_Study* ) saveWindowsGeometry(); } +/*!Private SLOT. On dump study.*/ void SalomeApp_Application::onDumpStudy( ) { SalomeApp_Study* appStudy = dynamic_cast( activeStudy() ); @@ -1119,7 +1179,7 @@ void SalomeApp_Application::onDumpStudy( ) SalomeApp_CheckFileDlg* fd = new SalomeApp_CheckFileDlg( desktop(), false, tr("PUBLISH_IN_STUDY"), true, true); fd->setCaption( tr( "TOT_DESK_FILE_DUMP_STUDY" ) ); - fd->setFilters( aFilters ); + fd->setFilters( aFilters ); fd->SetChecked(true); fd->exec(); QString aFileName = fd->selectedFile(); @@ -1132,6 +1192,7 @@ void SalomeApp_Application::onDumpStudy( ) } } +/*!Private SLOT. On load script.*/ void SalomeApp_Application::onLoadScript( ) { SalomeApp_Study* appStudy = dynamic_cast( activeStudy() ); @@ -1163,6 +1224,7 @@ void SalomeApp_Application::onLoadScript( ) } } +/*!Private SLOT. On preferences.*/ void SalomeApp_Application::onPreferences() { QApplication::setOverrideCursor( Qt::waitCursor ); @@ -1179,11 +1241,13 @@ void SalomeApp_Application::onPreferences() delete prefDlg; } +/*!Private SLOT. On open document with name \a aName.*/ void SalomeApp_Application::onMRUActivated( QString aName ) { onOpenDoc( aName ); } +/*!Private SLOT. On preferences changed.*/ void SalomeApp_Application::onPreferenceChanged( QString& modName, QString& section, QString& param ) { SalomeApp_Module* sMod = 0; @@ -1197,11 +1261,15 @@ void SalomeApp_Application::onPreferenceChanged( QString& modName, QString& sect preferencesChanged( section, param ); } +/*!Gets file filter. + *\retval QString "(*.hdf)" + */ QString SalomeApp_Application::getFileFilter() const { return "(*.hdf)"; } +/*!Remove all windows from study.*/ void SalomeApp_Application::beforeCloseDoc( SUIT_Study* s ) { CAM_Application::beforeCloseDoc( s ); @@ -1210,11 +1278,13 @@ void SalomeApp_Application::beforeCloseDoc( SUIT_Study* s ) removeWindow( itr.key(), s->id() ); } +/*!Update actions.*/ void SalomeApp_Application::updateActions() { updateCommandsStatus(); } +/*!Create window.*/ QWidget* SalomeApp_Application::createWindow( const int flag ) { QWidget* wid = 0; @@ -1238,8 +1308,8 @@ QWidget* SalomeApp_Application::createWindow( const int flag ) ob->addColumn( tr( QString().sprintf( "OBJ_BROWSER_COLUMN_%d", i ) ), i ); ob->setColumnShown( i, resMgr->booleanValue( "ObjectBrowser", QString().sprintf( "visibility_column_%d", i ), true ) ); - ob->listView()->setColumnWidthMode( i, autoSize ? QListView::Maximum : QListView::Manual ); } + ob->setWidthMode( autoSize ? QListView::Maximum : QListView::Manual ); // Create OBSelector new SalomeApp_OBSelector( ob, mySelMgr ); @@ -1269,6 +1339,9 @@ QWidget* SalomeApp_Application::createWindow( const int flag ) return wid; } +/*!Default windows(Object Browser, Python Console). + * Adds to map \a aMap. + */ void SalomeApp_Application::defaultWindows( QMap& aMap ) const { aMap.insert( WT_ObjectBrowser, Qt::DockLeft ); @@ -1276,10 +1349,15 @@ void SalomeApp_Application::defaultWindows( QMap& aMap ) const // aMap.insert( WT_LogWindow, Qt::DockBottom ); } +/*!Default view manager.*/ void SalomeApp_Application::defaultViewManagers( QStringList& ) const { + /*!Do nothing.*/ } +/*!Gets preferences. + * Create preferences, if \a crt = true. + */ SalomeApp_Preferences* SalomeApp_Application::preferences( const bool crt ) const { if ( myPrefs ) @@ -1334,6 +1412,7 @@ SalomeApp_Preferences* SalomeApp_Application::preferences( const bool crt ) cons return myPrefs; } +/*!Add new module to application.*/ void SalomeApp_Application::moduleAdded( CAM_Module* mod ) { CAM_Application::moduleAdded( mod ); @@ -1350,6 +1429,7 @@ void SalomeApp_Application::moduleAdded( CAM_Module* mod ) } } +/*!Create preferences.*/ void SalomeApp_Application::createPreferences( SalomeApp_Preferences* pref ) { if ( !pref ) @@ -1378,8 +1458,8 @@ void SalomeApp_Application::createPreferences( SalomeApp_Preferences* pref ) int pythonConsoleGroup = pref->addPreference( tr( "PREF_GROUP_PY_CONSOLE" ), genTab ); pref->setItemProperty( pythonConsoleGroup, "columns", 1 ); pref->addPreference( tr( "PREF_FONT" ), pythonConsoleGroup, SalomeApp_Preferences::Font, "PyConsole", "font" ); - - + + int obTab = pref->addPreference( tr( "PREF_TAB_OBJBROWSER" ), salomeCat ); int defCols = pref->addPreference( tr( "PREF_GROUP_DEF_COLUMNS" ), obTab ); @@ -1398,8 +1478,12 @@ void SalomeApp_Application::createPreferences( SalomeApp_Preferences* pref ) int occGroup = pref->addPreference( tr( "PREF_GROUP_OCCVIEWER" ), viewTab ); int vtkGroup = pref->addPreference( tr( "PREF_GROUP_VTKVIEWER" ), viewTab ); + + int plot2dGroup = pref->addPreference( tr( "PREF_GROUP_PLOT2DVIEWER" ), viewTab ); + pref->setItemProperty( occGroup, "columns", 1 ); pref->setItemProperty( vtkGroup, "columns", 1 ); + pref->setItemProperty( plot2dGroup, "columns", 1 ); int occTS = pref->addPreference( tr( "PREF_TRIHEDRON_SIZE" ), occGroup, SalomeApp_Preferences::IntSpin, "OCCViewer", "trihedron_size" ); @@ -1427,7 +1511,71 @@ void SalomeApp_Application::createPreferences( SalomeApp_Preferences* pref ) pref->setItemProperty( vtkTS, "min", 1 ); pref->setItemProperty( vtkTS, "max", 150 ); + + pref->addPreference( tr( "PREF_SHOW_LEGEND" ), plot2dGroup, + SalomeApp_Preferences::Bool, "Plot2d", "ShowLegend" ); + + int legendPosition = pref->addPreference( tr( "PREF_LEGEND_POSITION" ), plot2dGroup, + SalomeApp_Preferences::Selector, "Plot2d", "LegendPos" ); + QStringList aLegendPosList; + aLegendPosList.append( tr("PREF_LEFT") ); + aLegendPosList.append( tr("PREF_RIGHT") ); + aLegendPosList.append( tr("PREF_TOP") ); + aLegendPosList.append( tr("PREF_BOTTOM") ); + + QValueList anIndexesList; + anIndexesList.append(0); + anIndexesList.append(1); + anIndexesList.append(2); + anIndexesList.append(3); + + pref->setItemProperty( legendPosition, "strings", aLegendPosList ); + pref->setItemProperty( legendPosition, "indexes", anIndexesList ); + + int curveType = pref->addPreference( tr( "PREF_CURVE_TYPE" ), plot2dGroup, + SalomeApp_Preferences::Selector, "Plot2d", "CurveType" ); + QStringList aCurveTypesList; + aCurveTypesList.append( tr("PREF_POINTS") ); + aCurveTypesList.append( tr("PREF_LINES") ); + aCurveTypesList.append( tr("PREF_SPLINE") ); + + anIndexesList.clear(); + anIndexesList.append(0); + anIndexesList.append(1); + anIndexesList.append(2); + + pref->setItemProperty( curveType, "strings", aCurveTypesList ); + pref->setItemProperty( curveType, "indexes", anIndexesList ); + int markerSize = pref->addPreference( tr( "PREF_MARKER_SIZE" ), plot2dGroup, + SalomeApp_Preferences::IntSpin, "Plot2d", "MarkerSize" ); + + pref->setItemProperty( markerSize, "min", 0 ); + pref->setItemProperty( markerSize, "max", 100 ); + + QStringList aScaleModesList; + aScaleModesList.append( tr("PREF_LINEAR") ); + aScaleModesList.append( tr("PREF_LOGARITHMIC") ); + + anIndexesList.clear(); + anIndexesList.append(0); + anIndexesList.append(1); + + int horScale = pref->addPreference( tr( "PREF_HOR_AXIS_SCALE" ), plot2dGroup, + SalomeApp_Preferences::Selector, "Plot2d", "HorScaleMode" ); + + pref->setItemProperty( horScale, "strings", aScaleModesList ); + pref->setItemProperty( horScale, "indexes", anIndexesList ); + + int verScale = pref->addPreference( tr( "PREF_VERT_AXIS_SCALE" ), plot2dGroup, + SalomeApp_Preferences::Selector, "Plot2d", "VerScaleMode" ); + + pref->setItemProperty( verScale, "strings", aScaleModesList ); + pref->setItemProperty( verScale, "indexes", anIndexesList ); + + pref->addPreference( tr( "PREF_VIEWER_BACKGROUND" ), plot2dGroup, + SalomeApp_Preferences::Color, "Plot2d", "Background" ); + int dirTab = pref->addPreference( tr( "PREF_TAB_DIRECTORIES" ), salomeCat ); int dirGroup = pref->addPreference( tr( "PREF_GROUP_DIRECTORIES" ), dirTab ); pref->setItemProperty( dirGroup, "columns", 1 ); @@ -1474,7 +1622,7 @@ void SalomeApp_Application::preferencesChanged( const QString& sec, const QStrin vtkVM->Repaint(); } } - + if ( sec == QString( "OCCViewer" ) && ( param == QString( "iso_number_u" ) || param == QString( "iso_number_v" ) ) ) { QPtrList lst; @@ -1494,8 +1642,7 @@ void SalomeApp_Application::preferencesChanged( const QString& sec, const QStrin return; bool autoSize = resMgr->booleanValue( "ObjectBrowser", "auto_size", false ); - for ( int i = SalomeApp_DataObject::CT_Value; i <= SalomeApp_DataObject::CT_RefEntry; i++ ) - ob->listView()->setColumnWidthMode( i, autoSize ? QListView::Maximum : QListView::Manual ); + ob->setWidthMode( autoSize ? QListView::Maximum : QListView::Manual ); updateObjectBrowser( false ); } @@ -1509,6 +1656,7 @@ void SalomeApp_Application::preferencesChanged( const QString& sec, const QStrin } } +/*!Update desktop title.*/ void SalomeApp_Application::updateDesktopTitle() { QString aTitle = applicationName(); QString aVer = applicationVersion(); @@ -1534,6 +1682,7 @@ void SalomeApp_Application::updateDesktopTitle() { desktop()->setCaption( aTitle ); } +/*!Update windows after close document.*/ void SalomeApp_Application::afterCloseDoc() { updateWindows(); @@ -1541,6 +1690,7 @@ void SalomeApp_Application::afterCloseDoc() CAM_Application::afterCloseDoc(); } +/*!Gets CORBA::ORB_var*/ CORBA::ORB_var SalomeApp_Application::orb() { ORB_INIT& init = *SINGLETON_::Instance(); @@ -1548,18 +1698,21 @@ CORBA::ORB_var SalomeApp_Application::orb() return _orb; } +/*!Create and return SALOMEDS_StudyManager.*/ SALOMEDSClient_StudyManager* SalomeApp_Application::studyMgr() { static SALOMEDSClient_StudyManager* _sm = new SALOMEDS_StudyManager(); return _sm; } +/*!Create and return SALOME_NamingService.*/ SALOME_NamingService* SalomeApp_Application::namingService() { static SALOME_NamingService* _ns = new SALOME_NamingService( orb() ); return _ns; } +/*!Create and return SALOME_LifeCycleCORBA.*/ SALOME_LifeCycleCORBA* SalomeApp_Application::lcc() { static SALOME_LifeCycleCORBA* _lcc = new SALOME_LifeCycleCORBA( namingService() ); @@ -1568,7 +1721,7 @@ SALOME_LifeCycleCORBA* SalomeApp_Application::lcc() QString SalomeApp_Application::defaultEngineIOR() { - // Look for a default module engine (needed for CORBAless modules to use SALOMEDS persistence) + /// Look for a default module engine (needed for CORBAless modules to use SALOMEDS persistence) QString anIOR( "" ); CORBA::Object_ptr anEngine = namingService()->Resolve( "/SalomeAppEngine" ); if ( !CORBA::is_nil( anEngine ) ) @@ -1576,6 +1729,7 @@ QString SalomeApp_Application::defaultEngineIOR() return anIOR; } +/*!Adds icon names for modules.*/ void SalomeApp_Application::moduleIconNames( QMap& iconMap ) const { iconMap.clear(); @@ -1603,6 +1757,7 @@ void SalomeApp_Application::moduleIconNames( QMap& iconMap ) c } } +/*!Update module action.*/ void SalomeApp_Application::updateModuleActions() { QString modName; @@ -1613,6 +1768,9 @@ void SalomeApp_Application::updateModuleActions() myActions[modName]->setOn( true ); } +/*!Gets current windows. + *\param winMap - output current windows map. + */ void SalomeApp_Application::currentWindows( QMap& winMap ) const { winMap.clear(); @@ -1625,6 +1783,9 @@ void SalomeApp_Application::currentWindows( QMap& winMap ) const defaultWindows( winMap ); } +/*!Gets current view managers. + *\param lst - output current view managers list. + */ void SalomeApp_Application::currentViewManagers( QStringList& lst ) const { lst.clear(); @@ -1637,6 +1798,7 @@ void SalomeApp_Application::currentViewManagers( QStringList& lst ) const defaultViewManagers( lst ); } +/*!Update windows.*/ void SalomeApp_Application::updateWindows() { QMap winMap; @@ -1651,6 +1813,7 @@ void SalomeApp_Application::updateWindows() setWindowShown( itr.key(), !itr.data()->isEmpty() && winMap.contains( itr.key() ) ); } +/*!Update view managers.*/ void SalomeApp_Application::updateViewManagers() { QStringList lst; @@ -1660,6 +1823,7 @@ void SalomeApp_Application::updateViewManagers() getViewManager( *it, true ); } +/*!Load windows geometry.*/ void SalomeApp_Application::loadWindowsGeometry() { QtxDockAction* dockMgr = 0; @@ -1683,6 +1847,7 @@ void SalomeApp_Application::loadWindowsGeometry() dockMgr->restoreGeometry(); } +/*!Save windows geometry.*/ void SalomeApp_Application::saveWindowsGeometry() { QtxDockAction* dockMgr = 0; @@ -1706,6 +1871,7 @@ void SalomeApp_Application::saveWindowsGeometry() dockMgr->saveGeometry( resourceMgr(), section, false ); } +/*!Activate windows.*/ void SalomeApp_Application::activateWindows() { if ( activeStudy() ) @@ -1715,6 +1881,7 @@ void SalomeApp_Application::activateWindows() } } +/*!Private SLOT. On preferences.*/ void SalomeApp_Application::onProperties() { SalomeApp_Study* study = dynamic_cast( activeStudy() ); @@ -1735,7 +1902,8 @@ void SalomeApp_Application::onProperties() updateDesktopTitle(); } -QString SalomeApp_Application::getFileName( bool open, const QString& initial, const QString& filters, +/*!*/ +QString SalomeApp_Application::getFileName( bool open, const QString& initial, const QString& filters, const QString& caption, QWidget* parent ) { if ( !parent ) @@ -1744,6 +1912,7 @@ QString SalomeApp_Application::getFileName( bool open, const QString& initial, c return SUIT_FileDlg::getFileName( parent, initial, fls, caption, open, true ); } +/*!*/ QString SalomeApp_Application::getDirectory( const QString& initial, const QString& caption, QWidget* parent ) { if ( !parent ) @@ -1751,7 +1920,8 @@ QString SalomeApp_Application::getDirectory( const QString& initial, const QStri return SUIT_FileDlg::getExistingDirectory( parent, initial, caption, true ); } -QStringList SalomeApp_Application::getOpenFileNames( const QString& initial, const QString& filters, +/*!*/ +QStringList SalomeApp_Application::getOpenFileNames( const QString& initial, const QString& filters, const QString& caption, QWidget* parent ) { if ( !parent ) @@ -1760,16 +1930,19 @@ QStringList SalomeApp_Application::getOpenFileNames( const QString& initial, con return SUIT_FileDlg::getOpenFileNames( parent, initial, fls, caption, true ); } +/*!*/ void SalomeApp_Application::contextMenuPopup( const QString& type, QPopupMenu* thePopup, QString& title ) { CAM_Application::contextMenuPopup( type, thePopup, title ); - thePopup->insertSeparator(); - thePopup->insertItem( tr( "MEN_REFRESH" ), this, SLOT( onRefresh() ) ); - - // "Activate module" item should appear only if it's necessary + OB_Browser* ob = objectBrowser(); if ( !ob || type != ob->popupClientType() ) return; + + thePopup->insertSeparator(); + thePopup->insertItem( tr( "MEN_REFRESH" ), this, SLOT( onRefresh() ) ); + + // "Activate module" item should appear only if it's necessary SALOME_ListIO aList; SalomeApp_SelectionMgr* mgr = selectionMgr(); mgr->selectedObjects(aList); @@ -1784,13 +1957,14 @@ void SalomeApp_Application::contextMenuPopup( const QString& type, QPopupMenu* t thePopup->insertItem( tr( "MEN_OPENWITH" ), this, SLOT( onOpenWith() ) ); } +/*!Update obect browser*/ void SalomeApp_Application::updateObjectBrowser( const bool updateModels ) { // update existing data models (already loaded SComponents) - if ( updateModels ) + if ( updateModels ) { for ( ModuleListIterator it = modules(); it.current(); ++it ) - { + { CAM_DataModel* camDM = it.current()->dataModel(); if ( camDM && camDM->inherits( "SalomeApp_DataModel" ) ) ((SalomeApp_DataModel*)camDM)->update(); @@ -1798,18 +1972,18 @@ void SalomeApp_Application::updateObjectBrowser( const bool updateModels ) } // update "non-existing" (not loaded yet) data models SalomeApp_Study* study = dynamic_cast(activeStudy()); - if ( study ) + if ( study ) { _PTR(Study) stdDS = study->studyDS(); - if( stdDS ) + if( stdDS ) { - for ( _PTR(SComponentIterator) it ( stdDS->NewComponentIterator() ); it->More(); it->Next() ) + for ( _PTR(SComponentIterator) it ( stdDS->NewComponentIterator() ); it->More(); it->Next() ) { - _PTR(SComponent) aComponent ( it->Value() ); + _PTR(SComponent) aComponent ( it->Value() ); if ( aComponent->ComponentDataType() == "Interface Applicative" ) continue; // skip the magic "Interface Applicative" component - + SalomeApp_DataModel::BuildTree( aComponent, study->root(), study, /*skipExisitng=*/true ); } } @@ -1822,8 +1996,7 @@ void SalomeApp_Application::updateObjectBrowser( const bool updateModels ) } } - -//************************************************************ +/*!Protected SLOT.On desktop activated.*/ void SalomeApp_Application::onDesktopActivated() { CAM_Application::onDesktopActivated(); @@ -1832,6 +2005,7 @@ void SalomeApp_Application::onDesktopActivated() aModule->studyActivated(); } +/*!Create empty study.*/ void SalomeApp_Application::createEmptyStudy() { CAM_Application::createEmptyStudy(); @@ -1839,6 +2013,7 @@ void SalomeApp_Application::createEmptyStudy() objectBrowser()->updateTree(); } +/*!Activate module \a mod.*/ bool SalomeApp_Application::activateModule( CAM_Module* mod ) { bool res = CAM_Application::activateModule( mod ); @@ -1846,3 +2021,26 @@ bool SalomeApp_Application::activateModule( CAM_Module* mod ) objectBrowser()->updateTree(); return res; } + +/*!Display Catalog Genenerator dialog */ +void SalomeApp_Application::onCatalogGen() +{ + ToolsGUI_CatalogGeneratorDlg aDlg( desktop() ); + aDlg.exec(); +} + +/*!Display Registry Display dialog */ +void SalomeApp_Application::onRegDisplay() +{ + CORBA::ORB_var anOrb = orb(); + ToolsGUI_RegWidget* regWnd = ToolsGUI_RegWidget::GetRegWidget( anOrb, desktop(), "Registry" ); + regWnd->show(); + regWnd->raise(); + regWnd->setActiveWindow(); +} + +/*!return keyborad accelerators manager object */ +SUIT_Accel* SalomeApp_Application::accel() const +{ + return myAccel; +}