X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModel%2FModel_Update.h;h=7eb4a8ef2e9424fd342efe8841a3b9cd8b2f92c0;hb=690012a1c13c51062fc01656ee18dd8edb947e02;hp=060b5c9d965cb36a18b4cf9f06db23053e44989e;hpb=ba8ee992b99097165d62ac9a93e842a47787216a;p=modules%2Fshaper.git diff --git a/src/Model/Model_Update.h b/src/Model/Model_Update.h index 060b5c9d9..7eb4a8ef2 100644 --- a/src/Model/Model_Update.h +++ b/src/Model/Model_Update.h @@ -39,7 +39,10 @@ class Model_Update : public Events_Listener bool myIsProcessed; /// set that contains features that must be executed only on finish of the operation 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 + bool myIsPreviewBlocked; public: /// Is called only once, on startup of the application @@ -52,7 +55,8 @@ protected: /// Appends the new modified feature to the myModified, clears myProcessed if needed /// Returns true if some feature really was marked as modified /// theReason is the object that causes modification of this feature - void addModified( + /// returns true if something reallsy was added to the modified and must be processed + bool addModified( std::shared_ptr theFeature, std::shared_ptr theReason); /// Recoursively checks and updates features if needed (calls the execute method) @@ -68,8 +72,8 @@ protected: const ModelAPI_ExecState theState); /// On operation start/end/abort the "Just" fileds must be cleared and processed in the right way - /// \param theFinish is true for start, close or abort transaction: all objects must be processed - void processFeatures(); + //! \param theFlushRedisplay a boolean value if the redisplay signal should be flushed + void processFeatures(const bool theFlushRedisplay = true); /// Performs the feature execution /// \returns the status of execution