Salome HOME
refs #609: simplify removing rows from tables.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileOp.cxx
index fc5d0f155569e1e4beb8b5d8830b8e65917cd45d..11a60f85217ae0411dd43c1cf4168220d1c7ce27 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #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>
@@ -84,9 +81,12 @@ void HYDROGUI_ProfileOp::startOperation()
 
   HYDROGUI_ProfileDlg* aPanel = (HYDROGUI_ProfileDlg*)inputPanel();
   aPanel->reset();
+  setPreviewManager( aPanel->viewManager() );
+  setCursor();
 
   if( myIsEdit )
-    myEditedObject = Handle(HYDROData_Profile)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+    if ( isApplyAndClose() )
+      myEditedObject = Handle(HYDROData_Profile)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
 
   QString aProfileName;
   if( !myEditedObject.IsNull() )
@@ -137,6 +137,7 @@ void HYDROGUI_ProfileOp::startOperation()
 void HYDROGUI_ProfileOp::abortOperation()
 {
   erasePreview();
+  restoreCursor();
 
   HYDROGUI_Operation::abortOperation();
 }
@@ -144,6 +145,7 @@ void HYDROGUI_ProfileOp::abortOperation()
 void HYDROGUI_ProfileOp::commitOperation()
 {
   erasePreview();
+  restoreCursor();
 
   HYDROGUI_Operation::commitOperation();
 }
@@ -226,11 +228,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