Salome HOME
refs #1327: debug of scaling operations
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileOp.cxx
index b6baf1e715b6d43cf286298409c085a8fbecf059..1c9c96adc5250777ac1b512cebebcba2e5ef3f07 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();
 }
@@ -197,7 +202,7 @@ bool HYDROGUI_ProfileOp::processApply( int& theUpdateFlags,
 
   HYDROData_ProfileUZ::PointsList aProfileParamPoints;
 
-  CurveCreator::Coordinates aCurveCoords = myProfile->getPoints( 0 );
+  CurveCreator::Coordinates aCurveCoords = myProfile->getCoords( 0 );
   if ( aCurveCoords.size() <= 2 )
   {
     theErrorMsg = tr( "NUMBER_OF_PROFILE_POINTS_INCORRECT" );
@@ -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;
+}