X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModelAPI%2FModelAPI_Object.cpp;h=9d08a0c3719c3bf8338acdc3b61887ef6c1ee3f5;hb=1b585947597658057eedf6223a230011e20a959d;hp=410c410c742f8d1f736aa8d646f6e7568b378784;hpb=68a64bcea80af988b21026b3aadd9a6178d0d9c9;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Object.cpp b/src/ModelAPI/ModelAPI_Object.cpp index 410c410c7..9d08a0c37 100644 --- a/src/ModelAPI/ModelAPI_Object.cpp +++ b/src/ModelAPI/ModelAPI_Object.cpp @@ -5,11 +5,28 @@ // Author: Mikhail PONIKAROV #include "ModelAPI_Object.h" - +#include "ModelAPI_Document.h" +#include "ModelAPI_Data.h" +#include "ModelAPI_Events.h" +#include bool ModelAPI_Object::isInHistory() { - return true; + if (myData->isValid()) { + return myData->isInHistory(); + } + return true; // default value +} + +void ModelAPI_Object::setInHistory( + const std::shared_ptr theObject, const bool theFlag) +{ + if (isInHistory() != theFlag) { + if (myData->isValid()) { + myData->setIsInHistory(theFlag); + } + myDoc->updateHistory(theObject); + } } std::shared_ptr ModelAPI_Object::data() const @@ -31,6 +48,10 @@ void ModelAPI_Object::attributeChanged(const std::string& theID) { } +ModelAPI_Object::ModelAPI_Object() +{ +} + ModelAPI_Object::~ModelAPI_Object() { } @@ -47,6 +68,17 @@ void ModelAPI_Object::setDoc(std::shared_ptr theDoc) void ModelAPI_Object::erase() { - if (myData) myData->erase(); - setData(DataPtr()); + if (myData->isValid() && myData != myData->invalidPtr() && myData->isOwner(this)) + myData->erase(); + setData(myData->invalidPtr()); +} + +bool ModelAPI_Object::isDisplayed() +{ + return myData->isDisplayed(); +} + +void ModelAPI_Object::setDisplayed(const bool theDisplay) +{ + myData->setDisplayed(theDisplay); }