]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Added methods startDocOperation(), abortDocOperation(), commitDocOperation() for...
authorouv <ouv@opencascade.com>
Mon, 2 Sep 2013 10:57:15 +0000 (10:57 +0000)
committerouv <ouv@opencascade.com>
Mon, 2 Sep 2013 10:57:15 +0000 (10:57 +0000)
src/HYDROGUI/HYDROGUI_DeleteOp.cxx
src/HYDROGUI/HYDROGUI_Operation.cxx
src/HYDROGUI/HYDROGUI_Operation.h
src/HYDROGUI/HYDROGUI_ShowHideOp.cxx
src/HYDROGUI/HYDROGUI_VisualStateOp.cxx

index 0e57e37266721a3c221e8627a2c0ec8cf1940b1e..46eb2fb52288939184e71af49f5afc1203555b1c 100644 (file)
@@ -62,12 +62,14 @@ void HYDROGUI_DeleteOp::startOperation()
     }
   }
 
+  startDocOperation();
   for( Standard_Integer anIndex = 1, aLength = aSeq.Length(); anIndex <= aLength; anIndex++ )
   {
     Handle(HYDROData_Object) anObject = aSeq.Value( anIndex );
     if( !anObject.IsNull() )
       anObject->Remove();
   }
+  commitDocOperation();
 
   module()->update( UF_Model | UF_Viewer );
   commit();
index 1b132b68f5e71b1efb16e6c8eb16fb3e774bb454..3183b3b82b8af70118e8c0409844a9e51e0f5971 100644 (file)
@@ -122,6 +122,24 @@ void HYDROGUI_Operation::processCancel()
 {
 }
 
+void HYDROGUI_Operation::startDocOperation()
+{
+  // Open transaction in the model document
+  doc()->StartOperation();
+}
+
+void HYDROGUI_Operation::abortDocOperation()
+{
+  // Abort transaction in the model document
+  doc()->AbortOperation();
+}
+
+void HYDROGUI_Operation::commitDocOperation()
+{
+  // Commit transaction in the model document
+  doc()->CommitOperation( HYDROGUI_Tool::ToExtString( getName() ) );
+}
+
 Handle_HYDROData_Document HYDROGUI_Operation::doc() const
 {
   return HYDROData_Document::Document( myModule->getStudyId() );
@@ -131,8 +149,7 @@ void HYDROGUI_Operation::onApply()
 {
   QApplication::setOverrideCursor( Qt::WaitCursor );
 
-  // Open transaction in the model document
-  doc()->StartOperation();
+  startDocOperation();
 
   int anUpdateFlags = 0;
   QString anErrorMsg;
@@ -159,16 +176,12 @@ void HYDROGUI_Operation::onApply()
   if ( aResult )
   {
     module()->update( anUpdateFlags );
-
-    // Commit transaction in the model document
-    doc()->CommitOperation( HYDROGUI_Tool::ToExtString( getName() ) );
+    commitDocOperation();
     commit();
   }
   else
   {
-    // Abort transaction in the model document
-    doc()->AbortOperation();
-
+    abortDocOperation();
     QString aMsg = tr( "INPUT_VALID_DATA" );
     if( !anErrorMsg.isEmpty() )
       aMsg.prepend( anErrorMsg + "\n" );
index 76eab3707d1f54157cf8fafde5ed83f1fb5faa50..c580e3f5c5e10f683e4f680e14c63d292c5a8d64 100644 (file)
@@ -56,6 +56,10 @@ protected:
   virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg );
   virtual void processCancel();
 
+  void startDocOperation();
+  void commitDocOperation();
+  void abortDocOperation();
+
   Handle_HYDROData_Document doc() const;
 
 protected slots:
index 04e60c725934c3498cf59a180cacaa814a965034..8d91cde4c7a2d83114bc3f7be737fb569bce298d 100644 (file)
@@ -55,6 +55,8 @@ void HYDROGUI_ShowHideOp::startOperation()
 {
   HYDROGUI_Operation::startOperation();
 
+  startDocOperation();
+
   size_t aViewId = HYDROGUI_Tool::GetActiveGraphicsViewId( module() );
 
   // for all objects
@@ -84,6 +86,8 @@ void HYDROGUI_ShowHideOp::startOperation()
     }
   }
 
+  commitDocOperation();
+
   module()->update( UF_Viewer );
   commit();
 }
index dd0523aaaee3baed98c9a5aaf64b85901aa02f36..37f9c27f81c0183dcf2a3bc05140cf30df9e0b69 100644 (file)
@@ -59,6 +59,8 @@ void HYDROGUI_VisualStateOp::startOperation()
 {
   HYDROGUI_Operation::startOperation();
 
+  startDocOperation();
+
   bool aResult = false;
   if( myIsLoad )
     aResult = loadVisualState();
@@ -66,9 +68,15 @@ void HYDROGUI_VisualStateOp::startOperation()
     aResult = saveVisualState();
 
   if( aResult )
+  {
+    commitDocOperation();
     commit();
+  }
   else
+  {
+    abortDocOperation();
     abort(); // do not commit the document command
+  }
 }
 
 bool HYDROGUI_VisualStateOp::saveVisualState()