mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-02 21:00:34 +05:00
PAL16774 (Crash after display of many groups)
+ virtual void studyClosed( SUIT_Study* ); and catch during visualization
This commit is contained in:
parent
b0b1fb044d
commit
1a2cff525d
@ -146,6 +146,8 @@
|
||||
#include "SALOMEDSClient_StudyBuilder.hxx"
|
||||
#include "SALOMEDSClient_SComponent.hxx"
|
||||
|
||||
#include <Standard_ErrorHandler.hxx>
|
||||
|
||||
using namespace std;
|
||||
|
||||
//namespace{
|
||||
@ -1348,7 +1350,18 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
case 214: // UPDATE
|
||||
{
|
||||
if(checkLock(aStudy)) break;
|
||||
SMESH::UpdateView();
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
SMESH::UpdateView();
|
||||
}
|
||||
catch (std::bad_alloc) { // PAL16774 (Crash after display of many groups)
|
||||
SMESH::OnVisuException();
|
||||
}
|
||||
catch (...) { // PAL16774 (Crash after display of many groups)
|
||||
SMESH::OnVisuException();
|
||||
}
|
||||
|
||||
SALOME_ListIO l;
|
||||
LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
|
||||
@ -1379,12 +1392,16 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
extractContainers( sel_objects, to_process );
|
||||
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (vtkwnd) {
|
||||
SALOME_ListIteratorOfListIO It( to_process );
|
||||
for (; It.More(); It.Next()) {
|
||||
Handle(SALOME_InteractiveObject) IOS = It.Value();
|
||||
if (IOS->hasEntry()) {
|
||||
SMESH::UpdateView(anAction, IOS->getEntry());
|
||||
if (!SMESH::UpdateView(anAction, IOS->getEntry()))
|
||||
break; // PAL16774 (Crash after display of many groups)
|
||||
if (anAction == SMESH::eDisplayOnly)
|
||||
anAction = SMESH::eDisplay;
|
||||
}
|
||||
@ -3030,6 +3047,12 @@ bool SMESHGUI::deactivateModule( SUIT_Study* study )
|
||||
return SalomeApp_Module::deactivateModule( study );
|
||||
}
|
||||
|
||||
void SMESHGUI::studyClosed( SUIT_Study* s )
|
||||
{
|
||||
SMESH::RemoveVisuData( s->id() );
|
||||
SalomeApp_Module::studyClosed( s );
|
||||
}
|
||||
|
||||
void SMESHGUI::OnGUIEvent()
|
||||
{
|
||||
const QObject* obj = sender();
|
||||
|
Loading…
Reference in New Issue
Block a user