-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
myElemTypeCombo->blockSignals(true);
myElemTypeCombo->clear();
int nbTypes = 0, hasNodes = 0;
- for ( int i = 0; i < types->length(); ++i )
+ for ( int i = 0; i < (int) types->length(); ++i )
{
switch ( types[i] ) {
case SMESH::NODE:
:SMESHGUI_SelectionOp()
{
mySimulation = 0;
+ mySMESHGUI = 0;
myDlg = new SMESHGUI_FindElemByPointDlg;
- myHelpFileName = "find_element_by_point_page.html";
+ myHelpFileName = "find_element_by_point.html";
QList<SUIT_SelectionFilter*> filters;
filters.append( new SMESH_TypeFilter( SMESH::MESH ) );
{
// 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);
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
+ * \brief highlight found selected elements
*/
//================================================================================
if ( !myMeshIO.IsNull() )
{
Selection_Mode selMode =
- myDlg->myElemTypeCombo->currentId() == int(SMESH::NODE) ? NodeSelection : CellSelection;
+ myDlg->myElemTypeCombo->currentId().toInt() == int(SMESH::NODE) ? NodeSelection : CellSelection;
if ( selectionMode() != selMode )
setSelectionMode( selMode );
aMeshEditor->FindElementsByPoint( myDlg->myX->GetValue(),
myDlg->myY->GetValue(),
myDlg->myZ->GetValue(),
- SMESH::ElementType( myDlg->myElemTypeCombo->currentId()));
+ SMESH::ElementType( myDlg->myElemTypeCombo->currentId().toInt()));
else
foundIds =
aMeshEditor->FindAmongElementsByPoint( myMeshOrPart,
myDlg->myX->GetValue(),
myDlg->myY->GetValue(),
myDlg->myZ->GetValue(),
- SMESH::ElementType( myDlg->myElemTypeCombo->currentId()));
+ SMESH::ElementType( myDlg->myElemTypeCombo->currentId().toInt()));
myDlg->myFoundList->clear();
- for ( int i = 0; i < foundIds->length(); ++i )
+ for ( int i = 0; i < (int) foundIds->length(); ++i )
myDlg->myFoundList->addItem( QString::number( foundIds[i] ));
if ( foundIds->length() > 0 )
if (aList.Extent() == 1 && aList.First()->hasEntry())
{
Handle(SALOME_InteractiveObject) anIO = aList.First();
- _PTR(SObject) pObj = studyDS()->FindObjectID(anIO->getEntry());
+ _PTR(SObject) pObj = SMESH::getStudy()->FindObjectID(anIO->getEntry());
CORBA::Object_var anObj = SMESH::IObjectToObject( anIO );
newMeshEntry = anIO->getEntry();
SMESH::SMESH_IDSource_var aMeshOrPart = SMESH::SMESH_IDSource::_narrow(anObj);
myPreview->nodesXYZ[0].x = myDlg->myX->GetValue();
myPreview->nodesXYZ[0].y = myDlg->myY->GetValue();
myPreview->nodesXYZ[0].z = myDlg->myZ->GetValue();
-
- mySimulation->SetData(&myPreview.in());
+ if (!mySimulation)
+ mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI ));
+ mySimulation->SetData( myPreview.in());
}
//================================================================================