X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Update.h;h=c5f27713841c6346db681b1140a9f777f6ae4155;hb=176403004ff97696f3c0b5f8bdf48692177fb34a;hp=f0586c9a25cb23a012246de77e4ca827a9c1992f;hpb=c549e1f27fbeb398fe73cb2afa62823be2c4abab;p=modules%2Fshaper.git diff --git a/src/Model/Model_Update.h b/src/Model/Model_Update.h index f0586c9a2..c5f277138 100644 --- a/src/Model/Model_Update.h +++ b/src/Model/Model_Update.h @@ -29,6 +29,11 @@ class Model_Update : public Events_Listener /// The second set is the objects that causes this object is modified std::map, std::set > > myModified; + /// Features which arguments were modified by not-persistent changes. + /// So, these referencing arguments must be updated + /// due to these features info also before execution). + std::map, std::set > > + myNotPersistentRefs; /// features that must be additionally processed after execution of finish operation std::set > myWaitForFinish; /// to know that some parameter was changed during this operation (to enable update expressions) @@ -41,7 +46,8 @@ class Model_Update : public Events_Listener 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 hte property panel is blocked and + /// any update is postponed until the end of operation bool myIsPreviewBlocked; public: @@ -72,8 +78,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 @@ -82,9 +88,15 @@ protected: /// Updates the properties of object because of stability state changes void updateStability(void* theSender); - /// Returns true if theFeature modification was caused by theReason (may be feature of result of this feature) + /// Returns true if theFeature modification was caused by theReason + /// (may be feature of result of this feature) bool isReason( std::shared_ptr& theFeature, std::shared_ptr theReason); + + /// Updates a selection attributes for the features that possible were affected by creation + /// or reorder of features upper in the history line (issue #1757) + void updateSelection(const std::set >& theObjects); + }; #endif