X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI.cxx;h=2b1da3a9c13cf26b2272c6cafe73671271ba5e4a;hp=5437a6dcf01347dd45c4cf389d7607eb7aeb874c;hb=8090525b4713bb9a09f4781864d4f4003989b4c8;hpb=6da95b11c68a6981580254d50918d51e0506f446 diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 5437a6dcf..2b1da3a9c 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -103,6 +103,8 @@ #include #include +#include + #include "SMESHGUI_Utils.h" #include "SMESHGUI_GEOMGenUtils.h" #include "SMESHGUI_MeshUtils.h" @@ -238,6 +240,8 @@ namespace{ QObject::tr("SMESH_BUT_OK")); wc.resume(); } + + SMESHGUI::GetSMESHGUI()->updateObjBrowser(); } catch (const SALOME::SALOME_Exception& S_ex){ wc.suspend(); @@ -1095,11 +1099,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) if( !mgr ) return false; - SUIT_ViewManager* vm = application()->activeViewManager(); - if( !vm ) - return false; - - SUIT_ViewWindow* view =vm->getActiveView(); + SUIT_ViewWindow* view = application()->desktop()->activeWindow(); SVTK_ViewWindow* vtkwnd = dynamic_cast( view ); QAction* act = action( theCommandID ); @@ -1177,6 +1177,10 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) { if(checkLock(aStudy)) break; SMESH::UpdateView(); + + SALOME_ListIO l; + SalomeApp_SelectionMgr *aSel = SMESHGUI::selectionMgr(); + aSel->setSelectedObjects( l ); break; } @@ -1350,6 +1354,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) tr("SMESH_WRN_VIEWER_VTK"), tr("SMESH_BUT_OK")); } + updateObjBrowser(); break; } @@ -1530,6 +1535,13 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } case 801: // CREATE GROUP { + if ( !vtkwnd ) + { + SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ), + tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) ); + break; + } + if(checkLock(aStudy)) break; EmitSignalDeactivateDialog(); SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil(); @@ -1551,6 +1563,13 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) case 802: // CONSTRUCT GROUP { + if ( !vtkwnd ) + { + SUIT_MessageBox::warn1( desktop(), tr( "SMESH_WRN_WARNING" ), + tr( "NOT_A_VTK_VIEWER" ),tr( "SMESH_BUT_OK" ) ); + break; + } + if(checkLock(aStudy)) break; EmitSignalDeactivateDialog(); @@ -1812,7 +1831,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) mgr->setValue( "SMESH", "SettingsElementsSelectTol", aTolItems ); // update current study settings - SMESH::UpdateSelectionProp(); + SMESH::UpdateSelectionProp( this ); if( vtkwnd ) { // update VTK viewer properties @@ -1878,6 +1897,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } } } + updateObjBrowser( true ); break; } @@ -2263,7 +2283,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) } - updateObjBrowser(); + //updateObjBrowser(); return true; } @@ -2304,7 +2324,6 @@ bool SMESHGUI::OnKeyPress( QKeyEvent * pe, SUIT_ViewWindow * wnd ) //============================================================================= bool SMESHGUI::SetSettings(SUIT_Desktop* parent) { - MESSAGE("SMESHGUI::SetSettings."); SMESHGUI::GetSMESHGUI(); SUIT_ResourceMgr* mgr = resourceMgr(); @@ -2343,6 +2362,7 @@ bool SMESHGUI::SetSettings(SUIT_Desktop* parent) action( 10001 )->setOn( false ); action( 10003 )->setOn( true ); } + action( 10003 )->setOn( Shrink ); // Automatic Update @@ -2361,10 +2381,12 @@ bool SMESHGUI::SetSettings(SUIT_Desktop* parent) action( 10071 )->setOn( false ); // Selection - SMESH::UpdateSelectionProp(); + SMESH::UpdateSelectionProp( this ); // menus disable - //action( 111 )->setEnabled( false ); // IMPORT DAT + action( 111 )->setEnabled( false ); // IMPORT DAT + + //action( 112 )->setEnabled( false ); //parent->menuBar()->setItemEnabled(112, false); // IMPORT UNV return true; @@ -2489,7 +2511,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createSMESHAction( 6012, "TAPER", "ICON_TAPER" , 0, true ); createSMESHAction( 6013, "ASPECT", "ICON_ASPECT" , 0, true ); createSMESHAction( 6014, "MIN_ANG", "ICON_ANGLE" , 0, true ); - createSMESHAction( 6015, "WRAP", "ICON_WRAP" , 0, true ); + createSMESHAction( 6015, "WARP", "ICON_WARP" , 0, true ); createSMESHAction( 6016, "SKEW", "ICON_SKEW", 0, true ); createSMESHAction( 6017, "ASPECT_3D", "ICON_ASPECT_3D", 0, true ); createSMESHAction( 6018, "LENGTH_2D", "ICON_LENGTH_2D", 0, true ); @@ -2498,6 +2520,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createSMESHAction( 401, "EDGE", "ICON_DLG_EDGE" ); createSMESHAction( 4021, "TRIANGLE", "ICON_DLG_TRIANGLE" ); createSMESHAction( 4022, "QUAD", "ICON_DLG_QUADRANGLE" ); + createSMESHAction( 4023, "POLYGON", "ICON_DLG_POLYGON" ); createSMESHAction( 4031, "TETRA", "ICON_DLG_TETRAS" ); createSMESHAction( 4032, "HEXA", "ICON_DLG_HEXAS" ); createSMESHAction( 4041, "REMOVE_NODES", "ICON_DLG_REM_NODE" ); @@ -2641,6 +2664,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createMenu( 401, addId, -1 ); createMenu( 4021, addId, -1 ); createMenu( 4022, addId, -1 ); + createMenu( 4023, addId, -1 ); createMenu( 4031, addId, -1 ); createMenu( 4032, addId, -1 ); createMenu( 4033, addId, -1 ); @@ -2736,6 +2760,7 @@ void SMESHGUI::initialize( CAM_Application* app ) createTool( 401, addRemTb ); createTool( 4021, addRemTb ); createTool( 4022, addRemTb ); + createTool( 4023, addRemTb ); createTool( 4031, addRemTb ); createTool( 4032, addRemTb ); createTool( 4033, addRemTb ); @@ -2826,17 +2851,18 @@ void SMESHGUI::initialize( CAM_Application* app ) isNotEmpty("numberOfNodes <> 0"), // has nodes, edges, etc in VISIBLE! actor - hasNodes("(numberOfNodes > 0 && isVisible)"), - hasElems("count( elemTypes ) > 0"), - hasDifferentElems("count( elemTypes ) > 1"), - hasEdges("{'Edge'} in elemTypes"), - hasFaces("{'Face'} in elemTypes"), - hasVolumes("{'Volume'} in elemTypes"); + hasNodes("(numberOfNodes > 0 )"),//&& isVisible)"), + hasElems("(count( elemTypes ) > 0)"), + hasDifferentElems("(count( elemTypes ) > 1)"), + hasEdges("({'Edge'} in elemTypes)"), + hasFaces("({'Face'} in elemTypes)"), + hasVolumes("({'Volume'} in elemTypes)"); QString aSelCount = QString( "%1 = 1" ).arg( QtxPopupMgr::Selection::defSelCountParam() ); - QString aClient = QString( "%1client in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( View ); + QString lc = QtxPopupMgr::Selection::defEquality(); + QString aClient = QString( "%1client in {%2}" ).arg( lc ).arg( "'VTKViewer'" ); QString aType = QString( "%1type in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( mesh_group ); - QString aMeshInVTK = aClient + "&&" + aType + "&&" + aSelCount; + QString aMeshInVTK = aClient + "&&" + aType;// + "&&" + aSelCount; //------------------------------------------------- // Numbering @@ -2977,7 +3003,7 @@ void SMESHGUI::initialize( CAM_Application* app ) popupMgr()->setRule( action( 6014 ), aMeshInVtkHasFaces, true ); popupMgr()->setRule( action( 6014 ), "controlMode = 'eMinimumAngle'", false ); - popupMgr()->insert( action( 6015 ), anId, -1 ); // WRAP + popupMgr()->insert( action( 6015 ), anId, -1 ); // WARP popupMgr()->setRule( action( 6015 ), aMeshInVtkHasFaces, true ); popupMgr()->setRule( action( 6015 ), "controlMode = 'eWarping'", false ); @@ -3013,6 +3039,9 @@ void SMESHGUI::initialize( CAM_Application* app ) popupMgr()->setRule( action( 302 ), aRule + "&&" + isNotEmpty, true ); popupMgr()->insert( separator(), -1, -1 ); + + connect( application(), SIGNAL( viewManagerAdded( SUIT_ViewManager* ) ), + this, SLOT( onViewManagerAdded( SUIT_ViewManager* ) ) ); } bool SMESHGUI::activateModule( SUIT_Study* study ) @@ -3021,9 +3050,9 @@ bool SMESHGUI::activateModule( SUIT_Study* study ) setMenuShown( true ); setToolShown( true ); + SetSettings( desktop() ); return res; - //SetSettings( desktop() ); } bool SMESHGUI::deactivateModule( SUIT_Study* study ) @@ -3048,6 +3077,12 @@ void SMESHGUI::OnGUIEvent() SMESH::SMESH_Gen_var SMESHGUI::GetSMESHGen() { + + if ( CORBA::is_nil( myComponentSMESH ) ) + { + SMESHGUI aGUI; //SRN BugID: IPAL9186: Create an instance of SMESHGUI to initialize myComponentSMESH + return aGUI.myComponentSMESH; + } return myComponentSMESH; } @@ -3075,3 +3110,9 @@ void SMESHGUI::viewManagers( QStringList& list ) const { list.append( SVTK_Viewer::Type() ); } + +void SMESHGUI::onViewManagerAdded( SUIT_ViewManager* mgr ) +{ + if( dynamic_cast( mgr ) ) + SMESH::UpdateSelectionProp( this ); +}