Salome HOME
refs #1278: by default objects in study are not expanded
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_MergePolylinesOp.cxx
index dd1c271ff8d28d3d2b3cdb3439d820748371d034..b97ca96cea23a3c695990ff80992e5b6dd3f03e6 100644 (file)
@@ -18,6 +18,9 @@
 
 #include <HYDROGUI_MergePolylinesOp.h>
 #include <HYDROGUI_MergePolylinesDlg.h>
+#include <HYDROGUI_UpdateFlags.h>
+#include <HYDROData_Document.h>
+#include <HYDROData_PolylineOperator.h>
 
 HYDROGUI_MergePolylinesOp::HYDROGUI_MergePolylinesOp( HYDROGUI_Module* theModule )
 : HYDROGUI_Operation( theModule )
@@ -33,7 +36,12 @@ void HYDROGUI_MergePolylinesOp::startOperation()
 {
   HYDROGUI_Operation::startOperation();
 
-  //TODO
+  HYDROGUI_MergePolylinesDlg* aPanel = 
+    ::qobject_cast<HYDROGUI_MergePolylinesDlg*>( inputPanel() );
+  if ( !aPanel )
+    return;
+
+  aPanel->setPolylinesFromSelection();
 }
 
 HYDROGUI_InputPanel* HYDROGUI_MergePolylinesOp::createInputPanel() const
@@ -45,16 +53,17 @@ bool HYDROGUI_MergePolylinesOp::processApply( int& theUpdateFlags,
                                               QString& theErrorMsg,
                                               QStringList& theBrowseObjectsEntries )
 {
-  /* TODO:
-  HYDROGUI_LocalCSDlg* aPanel = ::qobject_cast<HYDROGUI_LocalCSDlg*>( inputPanel() );
+  HYDROGUI_MergePolylinesDlg* aPanel = ::qobject_cast<HYDROGUI_MergePolylinesDlg*>( inputPanel() );
   if ( !aPanel )
     return false;
 
-  double aLX = aPanel->GetLocalX();
-  double aLY = aPanel->GetLocalY();
-  doc()->SetLocalCS( aLX, aLY );
+  QString aName = aPanel->GetResultName();
+  bool isConnectByNewSegment = aPanel->IsConnectByNewSegment();
+  HYDROData_SequenceOfObjects aPolylinesList = aPanel->selectedPolylines();
+  HYDROData_PolylineOperator anOp;
+  double aTolerance = 1E-7; //TODO
+  anOp.Merge( doc(), aName.toLatin1().data(), aPolylinesList, isConnectByNewSegment, aTolerance );
 
   theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer;
-  */
   return true;
 }