X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_FindElemByPointDlg.cxx;h=fc4304500cff44a28641f5505dc693f87b504b31;hp=c5a4e447ab3aabe3dfd9c20329e818fd992f5525;hb=5c19bc1e1684ec6a466423361949ed7b60556968;hpb=b1b19cbc0122fe55a2eee6378627dd1454acbea1 diff --git a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx index c5a4e447a..fc4304500 100644 --- a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx @@ -238,6 +238,7 @@ SMESHGUI_FindElemByPointOp::SMESHGUI_FindElemByPointOp() :SMESHGUI_SelectionOp() { mySimulation = 0; + mySMESHGUI = 0; myDlg = new SMESHGUI_FindElemByPointDlg; myHelpFileName = "find_element_by_point_page.html"; @@ -279,7 +280,10 @@ void SMESHGUI_FindElemByPointOp::startOperation() { // init simulation with a current View if ( mySimulation ) delete mySimulation; - mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( getSMESHGUI() )); + mySMESHGUI = getSMESHGUI(); + mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI ) ); + connect(mySMESHGUI, SIGNAL (SignalActivatedViewManager()), this, SLOT(onOpenView())); + connect(mySMESHGUI, SIGNAL (SignalCloseView()), this, SLOT(onCloseView())); vtkProperty* aProp = vtkProperty::New(); aProp->SetRepresentationToWireframe(); aProp->SetColor(250, 0, 250); @@ -309,10 +313,37 @@ void SMESHGUI_FindElemByPointOp::stopOperation() delete mySimulation; mySimulation = 0; } + disconnect(mySMESHGUI, SIGNAL (SignalActivatedViewManager()), this, SLOT(onOpenView())); + disconnect(mySMESHGUI, SIGNAL (SignalCloseView()), this, SLOT(onCloseView())); selectionMgr()->removeFilter( myFilter ); SMESHGUI_SelectionOp::stopOperation(); } +//================================================================================= +/*! + * \brief SLOT called when the viewer opened + */ +//================================================================================= +void SMESHGUI_FindElemByPointOp::onOpenView() +{ + if ( mySimulation ) { + mySimulation->SetVisibility(false); + } + else { + mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI )); + } +} + +//================================================================================= +/*! + * \brief SLOT called when the viewer closed + */ +//================================================================================= +void SMESHGUI_FindElemByPointOp::onCloseView() +{ + delete mySimulation; + mySimulation = 0; +} //================================================================================ /*! * \brief hilight found selected elements @@ -503,7 +534,8 @@ void SMESHGUI_FindElemByPointOp::redisplayPreview() myPreview->nodesXYZ[0].x = myDlg->myX->GetValue(); myPreview->nodesXYZ[0].y = myDlg->myY->GetValue(); myPreview->nodesXYZ[0].z = myDlg->myZ->GetValue(); - + if (!mySimulation) + mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI )); mySimulation->SetData(&myPreview.in()); }