Salome HOME
Fixed Salome crashed after close application with opened "Add Quadratic element"
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_AddQuadraticElementDlg.cxx
index ab2a0743f7f14da9ed3d8127768b55e679abf51f..94819e6cebac9dc8511d130e7d7a3821b6ee0b2c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -113,7 +113,7 @@ namespace
 }
 namespace SMESH
 {
-  class TElementSimulation {
+  class TElementSimulationQuad {
     SalomeApp_Application* myApplication;
     SUIT_ViewWindow* myViewWindow;
     SVTK_ViewWindow* myVTKViewWindow;
@@ -130,7 +130,7 @@ namespace SMESH
     SMESH_FaceOrientationFilter* myFaceOrientationFilter;
 
   public:
-    TElementSimulation (SalomeApp_Application* theApplication)
+    TElementSimulationQuad (SalomeApp_Application* theApplication)
     {
       myApplication = theApplication;
       SUIT_ViewManager* mgr = theApplication->activeViewManager();
@@ -230,7 +230,7 @@ namespace SMESH
     }
 
 
-    ~TElementSimulation()
+    ~TElementSimulationQuad()
     {
       if (FindVtkViewWindow(myApplication->activeViewManager(), myViewWindow)) {
         myVTKViewWindow->RemoveActor(myPreviewActor);
@@ -344,7 +344,7 @@ SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theM
   SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
     (SUIT_Session::session()->activeApplication());
 
-  mySimulation = new SMESH::TElementSimulation (anApp);
+  mySimulation = new SMESH::TElementSimulationQuad (anApp);
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
   QString anElementName;
@@ -933,41 +933,37 @@ void SMESHGUI_AddQuadraticElementDlg::SelectionIntoArgument()
 
   QString aCurrentEntry = myEntry;
 
+  // clear
+  myActor = 0;
   if ( myCurrentLineEdit )
-  {
-    // clear
-    myActor = 0;
-
     myCurrentLineEdit->setText("");
 
-    if (!GroupButtons->isEnabled()) // inactive
-      return;
-
-    mySimulation->SetVisibility(false);
-
-    // get selected mesh
-    SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
+  if (!GroupButtons->isEnabled()) // inactive
+    return;
 
-    if (aList.Extent() != 1)
-    {
-      UpdateTable();
-      updateButtons();
-      return;
-    }
+  mySimulation->SetVisibility(false);
 
-    Handle(SALOME_InteractiveObject) anIO = aList.First();
-    myEntry = anIO->getEntry();
-    myMesh = SMESH::GetMeshByIO(anIO);
-    if (myMesh->_is_nil()) {
-      updateButtons();
-      return;
-    }
+  // get selected mesh
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects(aList);
 
-    myActor = SMESH::FindActorByEntry(anIO->getEntry());
+  if (aList.Extent() != 1)
+  {
+    UpdateTable();
+    updateButtons();
+    return;
+  }
 
+  Handle(SALOME_InteractiveObject) anIO = aList.First();
+  myEntry = anIO->getEntry();
+  myMesh = SMESH::GetMeshByIO(anIO);
+  if (myMesh->_is_nil()) {
+    updateButtons();
+    return;
   }
 
+  myActor = SMESH::FindActorByEntry(anIO->getEntry());
+
   // process groups
   if ( !myMesh->_is_nil() && myEntry != aCurrentEntry ) {
     SMESH::ElementType anElementType;
@@ -1039,7 +1035,7 @@ void SMESHGUI_AddQuadraticElementDlg::displaySimulation()
 {
   if ( IsValid() )
   {
-    SMESH::TElementSimulation::TVTKIds anIds;
+    SMESH::TElementSimulationQuad::TVTKIds anIds;
 
     // Collect ids from the dialog
     int anID;