Salome HOME
refs #1330: draft preferences implementation for polyline arrow
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileOp.cxx
index b6baf1e715b6d43cf286298409c085a8fbecf059..ab8f669b1de4579113c5cdbc1b4e589003b7d793 100644 (file)
 #include <HYDROGUI_Module.h>
 #include <HYDROGUI_ProfileOp.h>
 #include <HYDROGUI_ProfileDlg.h>
-#include <HYDROGUI_Tool.h>
+#include <HYDROGUI_Tool2.h>
 #include <HYDROGUI_UpdateFlags.h>
 #include <HYDROGUI_DataObject.h>
 #include <HYDROData_Document.h>
 #include <HYDROData_Profile.h>
 #include <HYDROGUI_CurveCreatorProfile.h>
+#include <HYDROGUI_DeleteOp.h>
 #include <CurveCreator_Displayer.hxx>
 
 #include <LightApp_Application.h>
@@ -81,6 +82,8 @@ void HYDROGUI_ProfileOp::startOperation()
 
   HYDROGUI_ProfileDlg* aPanel = (HYDROGUI_ProfileDlg*)inputPanel();
   aPanel->reset();
+  setPreviewManager( aPanel->viewManager() );
+  setCursor();
 
   if( myIsEdit )
     if ( isApplyAndClose() )
@@ -135,6 +138,7 @@ void HYDROGUI_ProfileOp::startOperation()
 void HYDROGUI_ProfileOp::abortOperation()
 {
   erasePreview();
+  restoreCursor();
 
   HYDROGUI_Operation::abortOperation();
 }
@@ -142,6 +146,7 @@ void HYDROGUI_ProfileOp::abortOperation()
 void HYDROGUI_ProfileOp::commitOperation()
 {
   erasePreview();
+  restoreCursor();
 
   HYDROGUI_Operation::commitOperation();
 }
@@ -224,11 +229,11 @@ bool HYDROGUI_ProfileOp::processApply( int& theUpdateFlags,
 
   if ( !myIsEdit )
   {
-    aProfileObj->SetBorderColor( HYDROData_Profile::DefaultBorderColor() );
+    aProfileObj->SetBorderColor( aProfileObj->DefaultBorderColor() );
   }
 
   // At first we update the child u,z profile object
-  aProfileUZ->SetToUpdate( true );
+  aProfileUZ->Changed( HYDROData_Entity::Geom_2d );
   aProfileUZ->Update();
 
   // And now we update our edited object
@@ -275,3 +280,12 @@ void HYDROGUI_ProfileOp::erasePreview()
     }
   }
 }
+
+bool HYDROGUI_ProfileOp::isValid( SUIT_Operation* theOtherOp ) const
+{
+  HYDROGUI_DeleteOp* aDelOp = dynamic_cast<HYDROGUI_DeleteOp*>( theOtherOp );
+  if( aDelOp )
+    return true;
+  else
+    return false;
+}