Salome HOME
Copyright update 2022
[modules/geom.git] / src / RepairGUI / RepairGUI_DivideEdgeDlg.cxx
index b980caf8125ef8c0e14e820047cd2e08e5bec37c..7022150aad85cec8b3f453d10212d8e81c2a6a26 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  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
@@ -55,6 +55,8 @@
 #include <TopoDS_Edge.hxx>
 #include <gp_Pnt.hxx>
 
+#include <QButtonGroup>
+
 enum { BY_PARAM, BY_POINT_PROJ };
 
 //=================================================================================
@@ -127,13 +129,13 @@ RepairGUI_DivideEdgeDlg::RepairGUI_DivideEdgeDlg( GeometryGUI* theGeometryGUI, Q
 //=======================================================================
 void RepairGUI_DivideEdgeDlg::ConstructorsClicked( int constructorId )
 {
-  myIsParameterGr->button( 0 )->setShown( constructorId == BY_PARAM );
-  myIsParameterGr->button( 1 )->setShown( constructorId == BY_PARAM );
-  myValEdt                    ->setShown( constructorId == BY_PARAM );
-  myValLbl                    ->setShown( constructorId == BY_PARAM );
-  GroupPoints->TextLabel2     ->setShown( constructorId == BY_POINT_PROJ );
-  GroupPoints->PushButton2    ->setShown( constructorId == BY_POINT_PROJ );
-  GroupPoints->LineEdit2      ->setShown( constructorId == BY_POINT_PROJ );
+  myIsParameterGr->button( 0 )->setVisible( constructorId == BY_PARAM );
+  myIsParameterGr->button( 1 )->setVisible( constructorId == BY_PARAM );
+  myValEdt                    ->setVisible( constructorId == BY_PARAM );
+  myValLbl                    ->setVisible( constructorId == BY_PARAM );
+  GroupPoints->TextLabel2     ->setVisible( constructorId == BY_POINT_PROJ );
+  GroupPoints->PushButton2    ->setVisible( constructorId == BY_POINT_PROJ );
+  GroupPoints->LineEdit2      ->setVisible( constructorId == BY_POINT_PROJ );
 
   initSelection();
 
@@ -474,7 +476,7 @@ void RepairGUI_DivideEdgeDlg::enterEvent( QEvent* )
 //=================================================================================
 GEOM::GEOM_IOperations_ptr RepairGUI_DivideEdgeDlg::createOperation()
 {
-  return getGeomEngine()->GetIHealingOperations( getStudyId() );
+  return getGeomEngine()->GetIHealingOperations();
 }
 
 //=================================================================================
@@ -525,7 +527,7 @@ bool RepairGUI_DivideEdgeDlg::execute( ObjectList& objects )
       aParameters << "";
       aParameters << myValEdt->text();
       aParameters << "";
-      anObj->SetParameters(aParameters.join(":").toLatin1().constData());
+      anObj->SetParameters(aParameters.join(":").toUtf8().constData());
     }
     if ( !IsPreview() )
       RepairGUI::ShowStatistics( anOper, this );
@@ -550,12 +552,10 @@ bool RepairGUI_DivideEdgeDlg::getIsByParameter() const
 //=================================================================================
 void RepairGUI_DivideEdgeDlg::initSelection()
 {
-  TopAbs_ShapeEnum type = TopAbs_EDGE;
-  if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
-    type = TopAbs_VERTEX;
-
-  globalSelection(); // close local contexts, if any
-  localSelection( GEOM::GEOM_Object::_nil(), type ); // load local selection on ALL objects
+  // close local contexts
+  globalSelection();
+  // load local selection on ALL objects
+  localSelection( myEditCurrentArgument == GroupPoints->LineEdit2 ? TopAbs_VERTEX : TopAbs_EDGE );
 }
 
 //=================================================================================
@@ -567,3 +567,15 @@ void RepairGUI_DivideEdgeDlg::addSubshapesToStudy()
   for ( int i = 0; i < myPoints.count(); ++i )
     GEOMBase::PublishSubObject( myPoints[i].get() );
 }
+
+//=================================================================================
+// function : getSourceObjects
+// purpose  : virtual method to get source objects
+//=================================================================================
+QList<GEOM::GeomObjPtr> RepairGUI_DivideEdgeDlg::getSourceObjects()
+{
+  QList<GEOM::GeomObjPtr> res(myPoints);
+  GEOM::GeomObjPtr aGeomObjPtr(myObject);
+  res << aGeomObjPtr;
+  return res;
+}