From 2a39de2aeb3283f4570b567dfe403f103cef7300 Mon Sep 17 00:00:00 2001 From: asl Date: Tue, 14 Jun 2005 06:25:33 +0000 Subject: [PATCH] IPAL9154 --- src/SMESHGUI/SMESHGUI.cxx | 23 ++++++++++++++++++----- src/SMESHGUI/SMESHGUI.h | 1 + src/SMESHGUI/SMESHGUI_VTKUtils.cxx | 27 +++++++++++++++++++++++---- src/SMESHGUI/SMESHGUI_VTKUtils.h | 3 ++- 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 6f22f8961..1c17f26c4 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" @@ -1812,7 +1814,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 @@ -2304,7 +2306,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 +2344,7 @@ bool SMESHGUI::SetSettings(SUIT_Desktop* parent) action( 10001 )->setOn( false ); action( 10003 )->setOn( true ); } + action( 10003 )->setOn( Shrink ); // Automatic Update @@ -2361,10 +2363,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; @@ -3016,6 +3020,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 ) @@ -3024,9 +3031,9 @@ bool SMESHGUI::activateModule( SUIT_Study* study ) setMenuShown( true ); setToolShown( true ); + SetSettings( desktop() ); return res; - //SetSettings( desktop() ); } bool SMESHGUI::deactivateModule( SUIT_Study* study ) @@ -3078,3 +3085,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 ); +} diff --git a/src/SMESHGUI/SMESHGUI.h b/src/SMESHGUI/SMESHGUI.h index c99de05d2..ec883cab7 100644 --- a/src/SMESHGUI/SMESHGUI.h +++ b/src/SMESHGUI/SMESHGUI.h @@ -102,6 +102,7 @@ public slots: private slots: void OnGUIEvent(); + void onViewManagerAdded( SUIT_ViewManager* ); signals: void SignalDeactivateActiveDialog() ; diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx index b918db58d..734a07600 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx @@ -416,13 +416,32 @@ namespace SMESH{ } - void UpdateSelectionProp() { - SUIT_Study* aStudy = GetActiveStudy(); - SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( aStudy->application() ); + void UpdateSelectionProp( SMESHGUI* theModule ) { + if( !theModule ) + return; + + SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( theModule->application() ); + if( !app ) + { + MESSAGE( "UpdateSelectionProp: Application is null" ); + return; + } + SUIT_ViewManager* vm = app->activeViewManager(); + if( !vm ) + { + MESSAGE( "UpdateSelectionProp: View manager is null" ); + return; + } + QPtrVector views = vm->getViews(); - SUIT_ResourceMgr* mgr = SMESHGUI::resourceMgr(); + SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( theModule ); + if( !mgr ) + { + MESSAGE( "UpdateSelectionProp: Resource manager is null" ); + return; + } QColor aHiColor = mgr->colorValue( "SMESH", "SettingsSelectColor", Qt::white ), aSelColor = mgr->colorValue( "SMESH", "SettingsItemSelectColor", Qt::yellow ), diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.h b/src/SMESHGUI/SMESHGUI_VTKUtils.h index ec68ea5b1..f94695cd5 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.h +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.h @@ -39,6 +39,7 @@ class SVTK_ViewWindow; class SVTK_Selector; class SalomeApp_SelectionMgr; +class SMESHGUI; #include @@ -114,7 +115,7 @@ namespace SMESH{ void SetPickable(SMESH_Actor* theActor = NULL); - void UpdateSelectionProp(); + void UpdateSelectionProp( SMESHGUI* ); //----------------------------------------------------------------------------