Salome HOME
refs #618
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PolylineOp.cxx
index ea3eb1f3c159b81705cdebe09a805267766fd81b..745cf67dc6259e75a94b3978857d41d895e8e577 100755 (executable)
@@ -107,7 +107,8 @@ void HYDROGUI_PolylineOp::startOperation()
 {
   if( myIsEdit )
   {
-    myEditedObject = Handle(HYDROData_PolylineXY)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+    if ( isApplyAndClose() )
+         myEditedObject = Handle(HYDROData_PolylineXY)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
     if ( !myEditedObject.IsNull() && !myEditedObject->IsEditable() )
     {
       // Polyline is imported from GEOM module an is not recognized as
@@ -136,6 +137,9 @@ void HYDROGUI_PolylineOp::startOperation()
   aPanel->setOCCViewer( aViewManager ? aViewManager->getOCCViewer() : 0 );
   setPreviewManager( aViewManager );
 
+  if ( isApplyAndClose() )
+    setCursor();
+
   QString aPolylineName;
   if( !myEditedObject.IsNull() )
   {
@@ -182,6 +186,8 @@ void HYDROGUI_PolylineOp::startOperation()
 
 void HYDROGUI_PolylineOp::abortOperation()
 {
+  restoreCursor();
+
   HYDROGUI_PolylineDlg* aPanel = (HYDROGUI_PolylineDlg*)inputPanel();
   if ( aPanel )
     aPanel->setOCCViewer( 0 );
@@ -192,9 +198,15 @@ void HYDROGUI_PolylineOp::abortOperation()
 
 void HYDROGUI_PolylineOp::commitOperation()
 {
-  HYDROGUI_PolylineDlg* aPanel = (HYDROGUI_PolylineDlg*)inputPanel();
-  if ( aPanel )
-    aPanel->setOCCViewer( 0 );
+  if ( isApplyAndClose() )
+  {
+    restoreCursor();
+
+    HYDROGUI_PolylineDlg* aPanel = (HYDROGUI_PolylineDlg*)inputPanel();
+    if ( aPanel )
+      aPanel->setOCCViewer( 0 );
+  }
+
   erasePreview();
 
   HYDROGUI_Operation::commitOperation();