X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.cpp;h=5b9d7e3d4e0f3da971bd37d24dd6347179928f9f;hb=1cef78af4c4328ecf99a3ced86bda38e6e82e15c;hp=3d8e5d57f27d488e0159feae9392c3867ed51f79;hpb=f328eabbb64e9fe347f36728710ebe1ebb00de6e;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.cpp b/src/ModelAPI/ModelAPI_Feature.cpp index 3d8e5d57f..5b9d7e3d4 100644 --- a/src/ModelAPI/ModelAPI_Feature.cpp +++ b/src/ModelAPI/ModelAPI_Feature.cpp @@ -79,6 +79,7 @@ void ModelAPI_Feature::eraseResultFromList(const std::shared_ptrgroupName(); + aRes->setDisabled(aRes, true); // for complex results to disable all subs aRes->data()->erase(); myResults.erase(aResIter); @@ -103,12 +104,12 @@ void ModelAPI_Feature::removeResults(const int theSinceIndex, const bool theFlus while( aNextIter != myResults.end()) { aGroup = (*aNextIter)->groupName(); // remove previously erased results: to enable later if needed only actual (of history change) - if (theSinceIndex == 0 && (*aNextIter)->isDisabled()) { - aNextIter = myResults.erase(aNextIter); - } else { + //if (theSinceIndex == 0 && (*aNextIter)->isDisabled()) { + // aNextIter = myResults.erase(aNextIter); + //} else { (*aNextIter)->setDisabled(*aNextIter, true); // just disable results aNextIter++; - } + //} } if (!aGroup.empty() && theFlush) { // flush visualisation changes @@ -193,12 +194,37 @@ bool ModelAPI_Feature::setDisabled(const bool theFlag) return false; } -bool ModelAPI_Feature::isDisabled() const +bool ModelAPI_Feature::isDisabled() { return myIsDisabled; } +bool ModelAPI_Feature::setStable(const bool theFlag) +{ + if (myIsStable != theFlag) { + myIsStable = theFlag; + // send an event about the stability change (editing is started/finished) + static Events_Loop* aLoop = Events_Loop::loop(); + static Events_ID EVENT_STAB = aLoop->eventByName(EVENT_STABILITY_CHANGED); + std::shared_ptr aMessage(new Events_Message(EVENT_STAB, this)); + aLoop->send(aMessage, false); + return true; + } + return false; +} + +bool ModelAPI_Feature::isStable() +{ + return myIsStable; +} + bool ModelAPI_Feature::isPreviewNeeded() const { return true; } + +void ModelAPI_Feature::init() +{ + myIsDisabled = false; + myIsStable = true; +}