X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2FModel%2FModel_Update.h;h=1e3cd92a258c416317be3e1be883ce5d0a72eeb6;hb=81baa77e52cb1ade2bfbe5b21e893cc34b03c323;hp=cef7c0b49c4484241fb791aa0b132bee4b7dacbc;hpb=7074394f8f08413d885f63be01df6bd5007b868c;p=modules%2Fshaper.git diff --git a/src/Model/Model_Update.h b/src/Model/Model_Update.h index cef7c0b49..1e3cd92a2 100644 --- a/src/Model/Model_Update.h +++ b/src/Model/Model_Update.h @@ -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 // #ifndef Model_Update_H_ @@ -56,13 +55,16 @@ class Model_Update : public Events_Listener bool myIsFinish; /// try if processing is currently performed bool myIsProcessed; - /// set that contains features that must be executed only on finish of the operation - std::set > myProcessOnFinish; + /// map that contains features that must be executed only on finish of the operation + /// the value in map is the set of reasons + std::map, std::set > > + myProcessOnFinish; /// to avoid infinitive cycling: feature -> count of the processing periods during this update std::map, int > myProcessed; - /// if preview in hte property panel is blocked and - /// any update is postponed until the end of operation + /// if preview in the property panel is blocked any update is postponed until end of operation bool myIsPreviewBlocked; + /// disables any update if it is true, even on start/finish operation, undo, etc. + bool myUpdateBlocked; public: /// Is called only once, on startup of the application @@ -89,7 +91,7 @@ protected: /// Sends the redisplay events for feature and results, updates the updated status void redisplayWithResults(std::shared_ptr theFeature, - const ModelAPI_ExecState theState); + const ModelAPI_ExecState theState, bool theUpdateState = true); /// On operation start/end/abort the "Just" fileds must be cleared and processed in the right way //! \param theFlushRedisplay a boolean value if the redisplay signal should be flushed