INT PAL: 0052664: SIGSEGV at attempt to open 'View' menu when not OCC, VTK or Plot2D view is active.

This commit is contained in:
mpa 2015-04-03 12:31:31 +03:00
parent 4f4dc7e4d5
commit 57554854e0
2 changed files with 20 additions and 5 deletions

View File

@ -444,8 +444,11 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
int mgrId = viewWindow->getViewManager()->getGlobalId(); int mgrId = viewWindow->getViewManager()->getGlobalId();
SALOME_View* window = displayer.GetActiveView();
if ( !window ) return;
SALOME_ListIO anIOlst; SALOME_ListIO anIOlst;
displayer.GetActiveView()->GetVisible( anIOlst ); window->GetVisible( anIOlst );
for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) { for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) {
Handle( SALOME_InteractiveObject ) io = It.Value(); Handle( SALOME_InteractiveObject ) io = It.Value();
@ -479,8 +482,11 @@ void DisplayGUI::SetVectorMode( const bool mode, SUIT_ViewWindow* viewWindow )
int aMgrId = viewWindow->getViewManager()->getGlobalId(); int aMgrId = viewWindow->getViewManager()->getGlobalId();
SALOME_View* window = displayer.GetActiveView();
if ( !window ) return;
SALOME_ListIO anIOlst; SALOME_ListIO anIOlst;
displayer.GetActiveView()->GetVisible( anIOlst ); window->GetVisible( anIOlst );
for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) { for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) {
Handle( SALOME_InteractiveObject ) io = It.Value(); Handle( SALOME_InteractiveObject ) io = It.Value();
@ -525,8 +531,11 @@ void DisplayGUI::SetVerticesMode( const bool mode, SUIT_ViewWindow* viewWindow )
int aMgrId = viewWindow->getViewManager()->getGlobalId(); int aMgrId = viewWindow->getViewManager()->getGlobalId();
SALOME_View* window = displayer.GetActiveView();
if ( !window ) return;
SALOME_ListIO anIOlst; SALOME_ListIO anIOlst;
displayer.GetActiveView()->GetVisible( anIOlst ); window->GetVisible( anIOlst );
for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) { for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) {
Handle( SALOME_InteractiveObject ) io = It.Value(); Handle( SALOME_InteractiveObject ) io = It.Value();
@ -571,8 +580,11 @@ void DisplayGUI::SetNameMode( const bool mode, SUIT_ViewWindow* viewWindow )
int aMgrId = viewWindow->getViewManager()->getGlobalId(); int aMgrId = viewWindow->getViewManager()->getGlobalId();
SALOME_View* window = displayer.GetActiveView();
if ( !window ) return;
SALOME_ListIO anIOlst; SALOME_ListIO anIOlst;
displayer.GetActiveView()->GetVisible( anIOlst ); window->GetVisible( anIOlst );
for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) { for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) {
Handle( SALOME_InteractiveObject ) io = It.Value(); Handle( SALOME_InteractiveObject ) io = It.Value();

View File

@ -3082,8 +3082,11 @@ void UpdateNameMode( SalomeApp_Application* app )
GEOM_Displayer displayer( aStudy ); GEOM_Displayer displayer( aStudy );
int aMgrId = viewWindow->getViewManager()->getGlobalId(); int aMgrId = viewWindow->getViewManager()->getGlobalId();
SALOME_View* window = displayer.GetActiveView();
if ( !window ) return;
SALOME_ListIO anIOlst; SALOME_ListIO anIOlst;
displayer.GetActiveView()->GetVisible( anIOlst ); window->GetVisible( anIOlst );
for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) { for ( SALOME_ListIteratorOfListIO It( anIOlst ); It.More(); It.Next() ) {
Handle( SALOME_InteractiveObject ) io = It.Value(); Handle( SALOME_InteractiveObject ) io = It.Value();