]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
PAL13330( When mesh generation does not success, trace where )
authoreap <eap@opencascade.com>
Thu, 12 Apr 2007 09:40:05 +0000 (09:40 +0000)
committereap <eap@opencascade.com>
Thu, 12 Apr 2007 09:40:05 +0000 (09:40 +0000)
   check if ViewWindow is not deleted along with a study

src/SMESHGUI/SMESHGUI_ComputeDlg.cxx

index 8c1c0299ce9aa3822d0b896100ba8ba9f463e663..09b2fae92b947bd2343ad769aade0a85bd680eea 100644 (file)
@@ -44,6 +44,7 @@
 #include "SALOMEDSClient_SObject.hxx"
 #include "SALOME_ListIO.hxx"
 #include "SVTK_ViewWindow.h"
+#include "SVTK_ViewModel.h"
 #include "SalomeApp_Tools.h"
 #include "SalomeApp_Application.h"
 #include "SUIT_ResourceMgr.h"
@@ -124,12 +125,14 @@ namespace SMESH {
     // -----------------------------------------------------------------------
     void DeleteActors()
     {
-      TActorIterator actorIt = actorIterator();
-      while ( actorIt.more() )
-        if (VTKViewer_Actor* anActor = actorIt.next()) {
-          myViewWindow->RemoveActor( anActor );
-          //anActor->Delete();
-        }
+      if ( hasViewWindow() ) {
+        TActorIterator actorIt = actorIterator();
+        while ( actorIt.more() )
+          if (VTKViewer_Actor* anActor = actorIt.next()) {
+            myViewWindow->RemoveActor( anActor );
+            //anActor->Delete();
+          }
+      }
       myIndexToShape.Clear();
       myActors.clear();
       myShownActors.clear();
@@ -271,6 +274,16 @@ namespace SMESH {
       double deflection = Max( aXmax-aXmin , Max ( aYmax-aYmin , aZmax-aZmin)) * 0.01 *4;
       BRepMesh_IncrementalMesh MESH(shape,deflection);
     }
+    // -----------------------------------------------------------------------
+    bool hasViewWindow() const
+    {
+      if ( !myViewWindow ) return false;
+
+      if ( SalomeApp_Application* anApp = SMESHGUI::GetSMESHGUI()->getApp() )
+        return FindVtkViewWindow( anApp->getViewManager(SVTK_Viewer::Type(), false ),
+                                  myViewWindow );
+      return false;
+    }
   };
 
   // =========================================================================================