X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Recover.cpp;h=2005cef0711c71c4fc2c0951a5e0f0d3a5bca7ed;hb=8f29b823e6a1a407252eea9dbf110ad695c7121c;hp=0bf95c30101e7c1f39b3b5396c1cd6460522b8ab;hpb=d4b0a5cb916f4eccf4a0bce02e43a54c7a67cb93;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Recover.cpp b/src/FeaturesPlugin/FeaturesPlugin_Recover.cpp index 0bf95c301..2005cef07 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Recover.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_Recover.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2020 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "FeaturesPlugin_Recover.h" @@ -25,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -34,6 +34,7 @@ #include FeaturesPlugin_Recover::FeaturesPlugin_Recover() + : myClearListOnTypeChange(true) { } @@ -42,6 +43,15 @@ void FeaturesPlugin_Recover::initAttributes() data()->addAttribute(BASE_FEATURE(), ModelAPI_AttributeReference::typeId()); data()->addAttribute(RECOVERED_ENTITIES(), ModelAPI_AttributeRefList::typeId()); + data()->addAttribute(METHOD(), ModelAPI_AttributeString::typeId()); + if (!string(METHOD())->isInitialized()) { + myClearListOnTypeChange = false; + data()->blockSendAttributeUpdated(true, false); + string(METHOD())->setValue(METHOD_DEFAULT()); + data()->blockSendAttributeUpdated(false, false); + myClearListOnTypeChange = true; + } + ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), METHOD()); } void FeaturesPlugin_Recover::execute() @@ -82,3 +92,9 @@ void FeaturesPlugin_Recover::execute() removeResults(aResultIndex); } + +void FeaturesPlugin_Recover::attributeChanged(const std::string& theID) +{ + if (theID == METHOD() && myClearListOnTypeChange) + reflist(RECOVERED_ENTITIES())->clear(); +}