]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
#1123 Cancel constraint after preview: the edge does not go back to its previous...
authornds <nds@opencascade.com>
Tue, 15 Dec 2015 12:58:14 +0000 (15:58 +0300)
committernds <nds@opencascade.com>
Tue, 15 Dec 2015 12:58:14 +0000 (15:58 +0300)
In the previous case(create, delete) in the bug scenario, logic was the following:
1. The constraint feature is removed from the model, values are aborted by document. Values are correct.
2. signal created emulate signal updated. Sketch solver listens it and updates features values according to constraint(the solver did not accept delete and has knowledge about constraint)
3. signal delete is listened by solver. It removes constraint. However values of the features are modified as the constraint is applyed.

So, the solver need to obtain delete signal before create/update.

src/Model/Model_Objects.cpp

index 03e7bdee9ab4768a2cdeed9bd77e400ad7fe4ad5..b083c265c6667552389eaca5b68f21f797a1d786 100644 (file)
@@ -716,8 +716,8 @@ void Model_Objects::synchronizeFeatures(
   aLoop->activateFlushes(isActive);
 
   if (theFlush) {
-    aLoop->flush(aCreateEvent);
     aLoop->flush(aDeleteEvent);
+    aLoop->flush(aCreateEvent); // delete should be emitted before create to reacts to aborted feature
     aLoop->flush(anUpdateEvent);
     aLoop->flush(aCreateEvent); // after update of features, there could be results created
     aLoop->flush(aDeleteEvent); // or deleted