]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
refs #78: reported by Hervé Legrand: do not create segment if mouse moved out of...
authornds <natalia.donis@opencascade.com>
Mon, 2 Jun 2014 04:10:30 +0000 (08:10 +0400)
committernds <natalia.donis@opencascade.com>
Mon, 2 Jun 2014 04:10:30 +0000 (08:10 +0400)
the canBeCommitted() method is implemented.

src/ModuleBase/ModuleBase_IOperation.cpp
src/ModuleBase/ModuleBase_IOperation.h
src/PartSet/PartSet_OperationSketchLine.cpp
src/PartSet/PartSet_OperationSketchLine.h
src/XGUI/XGUI_OperationMgr.cpp

index 390cf96d2ae4fb6170b9c51bdefd99cb54b45caf..378af8663e35751e213566728e7ea3bfc3e41849 100644 (file)
@@ -31,6 +31,11 @@ ModuleBase_OperationDescription* ModuleBase_IOperation::getDescription() const
   return myDescription;
 }
 
+bool ModuleBase_IOperation::canBeCommitted() const
+{
+  return true;
+}
+
 bool ModuleBase_IOperation::isGranted(ModuleBase_IOperation* /*theOperation*/) const
 {
   return false;
index ae10a849b99263eeae6e49c4d528628df4c7e204..4af5c227f6abe858f23262cd958fab9cc3e2cd2a 100644 (file)
@@ -55,6 +55,10 @@ public:
   /// /returns the instance of the description class
   ModuleBase_OperationDescription* getDescription() const;
 
+  /// Verifies whether this operator can be commited.
+  /// \return Returns TRUE if current operation can be committed, e.g. all parameters are filled
+  virtual bool canBeCommitted() const;
+
   /// Verifies whether this operator can be always started above any already running one
   /// \return Returns TRUE if current operation must not be checked for ActiveOperation->IsValid( this )
   /// This method must be redefined in derived operation if operation of derived class
index fa16b1bf9c0b0b11496cb711ca6d26fbb37da8bc..4ca7d3200991b2acfa7782b722b84f3e8e15cce5 100644 (file)
@@ -54,6 +54,11 @@ PartSet_OperationSketchLine::~PartSet_OperationSketchLine()
 {
 }
 
+bool PartSet_OperationSketchLine::canBeCommitted() const
+{
+  return myPointSelectionMode == SM_DonePoint;
+}
+
 bool PartSet_OperationSketchLine::isGranted(ModuleBase_IOperation* theOperation) const
 {
   return theOperation->getDescription()->operationId().toStdString() == PartSet_OperationSketch::Type();
index 69a26936a3fb0def21c515dce94acfe4ac6d1379..cda1781c45b0c7289af0356d3524c8480f921ebc 100644 (file)
@@ -36,7 +36,11 @@ public:
   /// Destructor
   virtual ~PartSet_OperationSketchLine();
 
-   /// Returns that this operator can be started above already running one.
+  /// Verifies whether this operator can be commited.
+  /// \return Returns TRUE if current operation can be committed, e.g. all parameters are filled
+  virtual bool canBeCommitted() const;
+
+  /// Returns that this operator can be started above already running one.
    /// The runned operation should be the sketch feature modified operation
   /// \param theOperation the previous running operation
   virtual bool isGranted(ModuleBase_IOperation* theOperation) const;
index 3fb2cad89dce5d54dc9705829b0555b0fdc9adb3..514c5b2f116c1f760e975a7dbc1f86efb86bda20 100644 (file)
@@ -115,8 +115,12 @@ bool XGUI_OperationMgr::canStopOperation()
 void XGUI_OperationMgr::onCommitOperation()
 {
   ModuleBase_Operation* anOperation = currentOperation();
-  if (anOperation)
-    anOperation->commit();
+  if (anOperation) {
+    if (anOperation->canBeCommitted())
+      anOperation->commit();
+    else
+      anOperation->abort();
+  }
 }
 
 void XGUI_OperationMgr::onAbortOperation()