Salome HOME
Fix for the issue #1819 : ExtrusionCut is not updated when the sketch is modified...
authormpv <mpv@opencascade.com>
Mon, 10 Oct 2016 14:20:18 +0000 (17:20 +0300)
committermpv <mpv@opencascade.com>
Mon, 10 Oct 2016 14:20:18 +0000 (17:20 +0300)
src/Model/Model_Update.cpp

index a2f58ef2b3775d46b5bdb73d669398d595a8393a..302dbd2131841b138cb6400dae55a3f681d53bf7 100755 (executable)
@@ -130,7 +130,8 @@ bool Model_Update::addModified(FeaturePtr theFeature, FeaturePtr theReason) {
   if (!aIsDisabled) {
     std::set<std::shared_ptr<ModelAPI_Feature> > aNewSet;
     if (theFeature->data()->execState() == ModelAPI_StateMustBeUpdated ||
-        theFeature->data()->execState() == ModelAPI_StateInvalidArgument) { // issue 1519
+        theFeature->data()->execState() == ModelAPI_StateInvalidArgument || // issue 1519
+        theFeature->data()->execState() == ModelAPI_StateExecFailed) {
       // do not forget that in this case all were the reasons
       aNewSet.insert(theFeature);
     } else {
@@ -146,7 +147,8 @@ bool Model_Update::addModified(FeaturePtr theFeature, FeaturePtr theReason) {
     }
 #endif
   } else { // will be updated during the finish of the operation, or when it becomes enabled
-    if (theFeature->data()->execState() == ModelAPI_StateDone)
+    if (theFeature->data()->execState() == ModelAPI_StateDone ||
+        theFeature->data()->execState() == ModelAPI_StateExecFailed) // fix issue 1819
       theFeature->data()->execState(ModelAPI_StateMustBeUpdated);
     else 
       return true; // do not need iteration deeply if it is already marked as modified or so