X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.cpp;h=4b0939fab5e3220691f8928583537a9f76fd6d41;hb=207f4e84daf9c78020f5f250a33a63c71f0b0556;hp=d02bded7f5e95531f393af20adf6282a8a78e47c;hpb=9b61e5ee5eafe9d6948d9a78667efa2abec132c3;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.cpp b/src/ModelAPI/ModelAPI_Feature.cpp index d02bded7f..4b0939fab 100644 --- a/src/ModelAPI/ModelAPI_Feature.cpp +++ b/src/ModelAPI/ModelAPI_Feature.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 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 "ModelAPI_Feature.h" @@ -24,8 +23,11 @@ #include #include #include +#include +#include #include #include +#include void ModelAPI_Feature::setError(const std::string& theError, bool isSend, @@ -71,6 +73,13 @@ void ModelAPI_Feature::setResult(const std::shared_ptr& theResu // in any case result becomes enabled if (!isDisabled()) // disabled feature may be executed when it is added as not enabled (#2078) theResult->setDisabled(theResult, false); + + if (Config_PropManager::getAutoColorStatus() + && theResult->groupName() == ModelAPI_ResultGroup::group()) { + std::vector aColor; + ModelAPI_Tools::findRandomColor(aColor); + ModelAPI_Tools::setColor(theResult, aColor); + } } void ModelAPI_Feature::setResult(const std::shared_ptr& theResult, @@ -157,10 +166,6 @@ void ModelAPI_Feature::erase() document()->setCurrentFeatureUp(); } - static Events_Loop* aLoop = Events_Loop::loop(); - static Events_ID EVENT_DISP = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); - static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); - while (!myResults.empty()) { // remove one by one with messages std::shared_ptr aRes = *(myResults.begin()); aRes->setDisabled(aRes, true); // to avoid activation of the Part result @@ -209,11 +214,13 @@ bool ModelAPI_Feature::setDisabled(const bool theFlag) (*aResIter)->setDisabled(*aResIter, false); } // update selection for the case something was updated higher in the history - // while this feature was disabled + // while this feature was disabled, but avoid flushing it immediately and + // wait while all the previous features update myIsDisabled flag + // (flush will be called by the document) static Events_Loop* aLoop = Events_Loop::loop(); static Events_ID kUpdatedSel = aLoop->eventByName(EVENT_UPDATE_SELECTION); static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); - aECreator->sendUpdated(data()->owner(), kUpdatedSel, false); + aECreator->sendUpdated(data()->owner(), kUpdatedSel, true); } return true; } @@ -246,7 +253,7 @@ bool ModelAPI_Feature::isStable() return myIsStable; } -bool ModelAPI_Feature::customAction(const std::string& theActionId) +bool ModelAPI_Feature::customAction(const std::string& /*theActionId*/) { return false; }