Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MoveNodesDlg.cxx
index 12ad1b684ca5377ac5cddf34125814160fe21fac..c51f499048722dfcf54946cb890d2835c35ac7fb 100644 (file)
@@ -39,7 +39,7 @@
 #include "SMDS_Mesh.hxx"
 #include "SMDS_MeshNode.hxx"
 
-#include "SalomeApp_SelectionMgr.h"
+#include "LightApp_SelectionMgr.h"
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
 
@@ -63,6 +63,7 @@
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
 #include <vtkDataSetMapper.h>
+#include <vtkProperty.h>
 
 // QT includes
 #include <qgroupbox.h>
@@ -93,9 +94,7 @@ SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg (SMESHGUI* theModule,
          theName, 
          false,
          WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-  mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
   mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
-  myViewWindow(SMESH::GetViewWindow(theModule)),
   mySMESHGUI(theModule)
 {
   myPreviewActor = 0;
@@ -113,6 +112,8 @@ SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg (SMESHGUI* theModule,
 
   aDlgLay->setStretchFactor(aMainFrame, 1);
 
+  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
+
   Init();
 }
 
@@ -223,14 +224,12 @@ void SMESHGUI_MoveNodesDlg::Init()
   reset();
   setEnabled(true);
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
   SMESH::SetPointRepresentation(true);
-  myViewWindow->SetSelectionMode(NodeSelection);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode(NodeSelection);
 
   onSelectionDone();
 }
@@ -321,11 +320,13 @@ void SMESHGUI_MoveNodesDlg::onOk()
 //=======================================================================
 void SMESHGUI_MoveNodesDlg::onClose()
 {
-  mySelectionMgr->clearSelected();
+  //mySelectionMgr->clearSelected();
   SMESH::SetPointRepresentation(false);
-  myViewWindow->SetSelectionMode(ActorSelection);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode(ActorSelection);
   disconnect(mySelectionMgr, 0, this, 0);
   disconnect(mySMESHGUI, 0, this, 0);
+  erasePreview();
   mySMESHGUI->ResetState();
   reject();
 }
@@ -355,8 +356,11 @@ void SMESHGUI_MoveNodesDlg::onTextChange (const QString& theNewText)
       if(const SMDS_MeshElement *anElem = aMesh->FindElement(theNewText.toInt())) {
        TColStd_MapOfInteger aListInd;
        aListInd.Add(anElem->GetID());
-       mySelector->AddOrRemoveIndex(anIO,aListInd, true);
-       myViewWindow->highlight(anIO,true,true);
+       mySelector->AddOrRemoveIndex(anIO,aListInd, false);
+       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+         aViewWindow->highlight(anIO,true,true);
+       
+       onSelectionDone();
       }
     }
   }
@@ -421,7 +425,8 @@ void SMESHGUI_MoveNodesDlg::enterEvent (QEvent*)
 
     // set selection mode
     SMESH::SetPointRepresentation(true);
-    myViewWindow->SetSelectionMode(NodeSelection);
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode(NodeSelection);
 
     redisplayPreview();
 
@@ -436,7 +441,8 @@ void SMESHGUI_MoveNodesDlg::enterEvent (QEvent*)
 void SMESHGUI_MoveNodesDlg::closeEvent (QCloseEvent*)
 {
   onClose();
-  myViewWindow->Repaint();
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->Repaint();
 }
 
 //=======================================================================
@@ -469,10 +475,13 @@ void  SMESHGUI_MoveNodesDlg::erasePreview()
   if (myPreviewActor == 0)
     return;
 
-  myViewWindow->RemoveActor(myPreviewActor);
+  SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
+  if (aViewWindow)
+    aViewWindow->RemoveActor(myPreviewActor);
   myPreviewActor->Delete();
   myPreviewActor = 0;
-  myViewWindow->Repaint();
+  if (aViewWindow)
+    aViewWindow->Repaint();
 }
 
 //=======================================================================
@@ -546,6 +555,9 @@ void SMESHGUI_MoveNodesDlg::redisplayPreview()
   myPreviewActor->SetProperty(aProp);
   aProp->Delete();
 
-  myViewWindow->AddActor(myPreviewActor);
-  myViewWindow->Repaint();
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    {
+      aViewWindow->AddActor(myPreviewActor);
+      aViewWindow->Repaint();
+    }
 }