X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.h;h=6b70b2341fa431e90ba3892e25c211a4e65ea3e3;hb=bb77698cb96e6ea848443bab051b4e9ea885fee0;hp=3cf93537c29ecae7a909299b48c0f8856ee9d907;hpb=2302f15a8daf85b03bacc97fe20810f4fedec3c5;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.h b/src/PartSet/PartSet_Module.h index 3cf93537c..6b70b2341 100755 --- a/src/PartSet/PartSet_Module.h +++ b/src/PartSet/PartSet_Module.h @@ -30,10 +30,12 @@ class ModuleBase_Operation; class ModuleBase_IViewWindow; +class XGUI_Workshop; class PartSet_MenuMgr; class PartSet_CustomPrs; class PartSet_SketcherMgr; class PartSet_SketcherReetntrantMgr; +class ModelAPI_Result; class QAction; @@ -65,9 +67,15 @@ public: // Remove default selection filters of the module from the current viewer virtual void deactivateSelectionFilters(); + // Stores the current selection + virtual void storeSelection(); + + // Restores the current selection + virtual void restoreSelection(); + /// Creates custom widgets for property panel virtual ModuleBase_ModelWidget* createWidgetByType(const std::string& theType, QWidget* theParent, - Config_WidgetAPI* theWidgetApi, std::string theParentId); + Config_WidgetAPI* theWidgetApi); /// Returns the active widget, by default it is the property panel active widget /// If the internal edit operation is started, this is the first widget of the operation @@ -76,6 +84,22 @@ 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; + + /// Launching of a edit operation on the feature + /// \param theFeature feature for editing + virtual void editFeature(FeaturePtr theFeature); + + /// Returns true if the operation can be committed. Result in default implementation is true. + /// \return boolean value + virtual bool canCommitOperation() const; + /// Creates an operation and send it to loop /// \param theCmdId the operation name virtual void launchOperation(const QString& theCmdId); @@ -205,7 +229,8 @@ public: const bool theUpdateViewer); /// Modifies the given presentation in the custom way. - virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs, + virtual bool customisePresentation(std::shared_ptr theResult, + AISObjectPtr thePrs, std::shared_ptr theCustomPrs); /// Update the object presentable properties such as color, lines width and other @@ -226,9 +251,20 @@ public: /// Returns the viewer Z layer int getVisualLayerId() const { return myVisualLayerId; } + /// Create specific for the module presentation + /// \param theResult an object for presentation + /// \return created presentation or NULL(default value) + virtual Handle(AIS_InteractiveObject) createPresentation( + const std::shared_ptr& theResult); + //! Returns data object by AIS virtual ObjectPtr findPresentedObject(const AISObjectPtr& theAIS) const; + //! Returns true if the presentation can be shown in shading mode + //! \param theAIS presentation to be checked + //! \return boolean value + virtual bool canBeShaded(Handle(AIS_InteractiveObject) theAIS) const; + /// Update state of pop-up menu items in viewer /// \param theStdActions - a map of standard actions virtual void updateViewerMenu(const QMap& theStdActions); @@ -268,11 +304,6 @@ public: /// \return theAttribute virtual AttributePtr findAttribute(const ObjectPtr& theObject, const GeomShapePtr& theGeomShape); - /// Returns color of the object - /// \param theObject a result of a feature object - /// \param theColor a vector of three values in [0, 255] range - virtual void getColor(const ObjectPtr& theObject, std::vector& theColor); - 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, @@ -302,18 +333,21 @@ protected slots: /// \param theEvent the key event void onKeyRelease(ModuleBase_IViewWindow* theWnd, QKeyEvent* theEvent); - /// SLOT, that is called by the current operation filling with the preselection. - /// It commits the operation of it is can be committed - void onOperationActivatedByPreselection(); - /// 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); + /// A slot to change property panel title by choice type change if the title information + /// exists in the XML definition of this control attribute + /// \param theWidget a sender + /// \param theIndex the current choice index + void onChoiceChanged(ModuleBase_ModelWidget* theWidget, int theIndex); protected: + /// Sets the constraints states in internal map. If the feature kind is a dimensional constraint + /// other dimensions are shown. + /// \param theFeatureKindId a feature kind + void storeConstraintsState(const std::string& theFeatureKindId); + /// Register validators for this module virtual void registerValidators(); @@ -328,6 +362,12 @@ protected: /// \param isToConnect a boolean value whether connect or disconnect virtual void connectToPropertyPanel(ModuleBase_ModelWidget* theWidget, const bool isToConnect); + /// Realizes some functionality by an operation start + /// Displays all sketcher sub-Objects, hides sketcher result, appends selection filters + /// Activate the operation presentation + /// \param theOperation a started operation + virtual void operationStartedInternal(ModuleBase_Operation* theOperation); + private slots: void onTreeViewDoubleClick(const QModelIndex&); @@ -338,6 +378,9 @@ protected: //! Delete features virtual bool deleteObjects(); + /// Returns the workshop + XGUI_Workshop* getWorkshop() const; + private: SelectMgr_ListOfFilter mySelectionFilters;