X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.h;h=f6c371f1f13cce9a5b495d52647b5ba2518d5df9;hb=031179ada6681b874314c450eeda806f9f8abd28;hp=26f7ace3431a7ec298888c5000ed51013a2e318f;hpb=42985955d89fa845790a7e38609f5b6838285147;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.h b/src/PartSet/PartSet_Module.h index 26f7ace34..f6c371f1f 100755 --- a/src/PartSet/PartSet_Module.h +++ b/src/PartSet/PartSet_Module.h @@ -4,6 +4,8 @@ #define PartSet_Module_H #include "PartSet.h" +#include "PartSet_Tools.h" +#include "PartSet_OverconstraintListener.h" #include #include @@ -28,6 +30,7 @@ class ModuleBase_Operation; class ModuleBase_IViewWindow; +class XGUI_Workshop; class PartSet_MenuMgr; class PartSet_CustomPrs; class PartSet_SketcherMgr; @@ -74,6 +77,14 @@ public: /// Call back forlast tuning of property panel before operation performance virtual void propertyPanelDefined(ModuleBase_Operation* theOperation); + /// If there is found selected attribute, widgets are created and contains only a widget for the attribute + /// It is important for Property Panel filling by sketch point attribute + /// \param theOperation a started operation + /// \param theWidgets a list of created widgets + /// \return boolean result, false by default + virtual bool createWidgets(ModuleBase_Operation* theOperation, + QList& theWidgets) const; + /// Creates an operation and send it to loop /// \param theCmdId the operation name virtual void launchOperation(const QString& theCmdId); @@ -136,6 +147,10 @@ public: /// \param theObject a model object virtual bool canDisplayObject(const ObjectPtr& theObject) const; + /// Make some functionality after the objects are hidden in viewer + /// \param theObjects a list of hidden objects + virtual void processHiddenObject(const std::list& theObjects); + /// Returns true if selection for the object can be activate. /// For sketch operation allow the selection activation if the operation is edit, for other /// operation uses the default result @@ -166,6 +181,10 @@ public: /// Returns sketch reentrant manager PartSet_SketcherReetntrantMgr* sketchReentranceMgr() { return mySketchReentrantMgr; } + /// Returns listener of overconstraint signal + /// \return the listener + PartSet_OverconstraintListener* overconstraintListener() { return myOverconstraintListener; } + /// Performs functionality on closing document virtual void closeDocument(); @@ -180,14 +199,34 @@ public: /// \param theFeature a feature void setCustomized(const FeaturePtr& theFeature); - /** Update the object presentable properties such as color, lines width and other - * If the object is result with the color attribute value set, it is used, - * otherwise the customize is applyed to the object's feature if it is a custom prs - * \param theObject an object instance - * \param theUpdateViewer the parameter whether the viewer should be update immediatelly - * \returns true if the object is modified - */ - virtual bool customizeObject(ObjectPtr theObject, const bool theUpdateViewer); + /// Activate custom presentation for the object + /// \param theFeature a feature instance + /// \param theFlag a flag of level of customization, which means that only part of sub-elements + /// \param theUpdateViewer the parameter whether the viewer should be update immediately + virtual void activateCustomPrs(const FeaturePtr& theFeature, + const ModuleBase_CustomizeFlag& theFlag, + const bool theUpdateViewer); + + /// Deactivate custom presentation for the object + /// \param theFlag a flag of level of customization, which means that only part of sub-elements + /// \param theUpdateViewer the parameter whether the viewer should be update immediately + virtual void deactivateCustomPrs(const ModuleBase_CustomizeFlag& theFlag, + const bool theUpdateViewer); + + /// Modifies the given presentation in the custom way. + virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs, + std::shared_ptr theCustomPrs); + + /// Update the object presentable properties such as color, lines width and other + /// If the object is result with the color attribute value set, it is used, + /// otherwise the customize is applyed to the object's feature if it is a custom prs + /// \param theObject an object instance + /// \param theFlag a flag of level of customization, which means that only part of sub-elements + /// should be updated(e.g. only highlighted elements) + /// \param theUpdateViewer the parameter whether the viewer should be update immediatelly + /// \returns true if the object is modified + virtual bool customizeObject(ObjectPtr theObject, const ModuleBase_CustomizeFlag& theFlag, + const bool theUpdateViewer); /// This method is called on object browser creation for customisation of module specific features /// \param theObjectBrowser a pinter on Object Browser widget @@ -206,7 +245,7 @@ public: //! Returns the feature error if the current state of the feature in the module is not correct //! If the feature is correct, it returns an empty value //! \return string value - virtual QString getFeatureError(const FeaturePtr& theFeature, const bool isCheckGUI = true); + virtual QString getFeatureError(const FeaturePtr& theFeature); /// Returns list of granted operation indices virtual void grantedOperationIds(ModuleBase_Operation* theOperation, QStringList& theIds) const; @@ -219,6 +258,25 @@ public: /// \param thePreviousAttributeID an index of the previous active attribute virtual bool processEnter(const std::string& thePreviousAttributeID); + /// Performs some GUI actions after an operation transaction is opened + /// Default realization is empty + virtual void beforeOperationStarted(ModuleBase_Operation* theOperation); + + /// Performs some GUI actions before an operation transaction is stopped + /// Default realization is empty + virtual void beforeOperationStopped(ModuleBase_Operation* theOperation); + + /// Finds a shape by attribute if it is possible + /// \param theAttribute an attribute + /// \return a geom shape + virtual GeomShapePtr findShape(const AttributePtr& theAttribute); + + /// Finds an attribute by geom shape if it is possible + /// \param theObject an object of the attribute + /// \param theGeomShape a geom shape + /// \return theAttribute + virtual AttributePtr findAttribute(const ObjectPtr& theObject, const GeomShapePtr& theGeomShape); + public slots: /// Redefines the parent method in order to customize the next case: /// If the sketch nested operation is active and the presentation is not visualized in the viewer, @@ -255,6 +313,10 @@ protected slots: /// A slot called on view window creation void onViewCreated(ModuleBase_IViewWindow*); + /// A slot to change property panel title on change of boolean operation type + /// \param theOperation the operation type + void onBooleanOperationChange(int theOperation); + protected: /// Register validators for this module virtual void registerValidators(); @@ -280,6 +342,9 @@ protected: //! Delete features virtual bool deleteObjects(); + /// Returns the workshop + XGUI_Workshop* getWorkshop() const; + private: SelectMgr_ListOfFilter mySelectionFilters; @@ -288,9 +353,11 @@ protected: PartSet_MenuMgr* myMenuMgr; /// A default custom presentation, which is used for references objects of started operation PartSet_CustomPrs* myCustomPrs; + PartSet_OverconstraintListener* myOverconstraintListener; int myVisualLayerId; - bool myHasConstraintShown; + /// backup of the visible state to restore them by operation stop + QMap myHasConstraintShown; QModelIndex aActivePartIndex; };