X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_SketcherMgr.h;h=c5f7effe100641a20f6e164cf34eac5720d1fb65;hb=a731f82dccbfdb67cbf8e8d617222a4d3e32018a;hp=7feca59fbb28550cd3b6e9fab6163dcc8467515c;hpb=2145656ec34f3bfed35a2ccdc45dbedf626dbe6a;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_SketcherMgr.h b/src/PartSet/PartSet_SketcherMgr.h index 7feca59fb..c5f7effe1 100644 --- a/src/PartSet/PartSet_SketcherMgr.h +++ b/src/PartSet/PartSet_SketcherMgr.h @@ -87,13 +87,20 @@ public: /// \return the boolean result static bool isNestedSketchOperation(ModuleBase_Operation* theOperation); - /// Returns whethe the current operation is a sketch distance - lenght, distance or radius + /// Returns true if the operation is a create nested feature one + /// \param theOperation a checked operation + //// \return boolean value + static bool isNestedCreateOperation(ModuleBase_Operation* theOperation); + + /// Returns whether the current operation is a sketch entity - line, point, arc or circle /// \param the operation /// \return a boolean value - static bool isDistanceOperation(ModuleBase_Operation* theOperation); + static bool isEntityOperation(ModuleBase_Operation* theOperation); - /// Launches the operation from current highlighting - void launchEditing(); + /// Returns whether the current operation is a sketch distance - lenght, distance or radius + /// \param the operation + /// \return a boolean value + static bool isDistanceOperation(ModuleBase_Operation* theOperation); /// Returns current Sketch feature/ Returns NULL if there is no launched sketch operation CompositeFeaturePtr activeSketch() const { return myCurrentSketch; } @@ -130,6 +137,15 @@ public: /// \param theObject a model object bool canDisplayObject() const; + /// Returns true if the current operation is sketch entity create operation + /// \param theValue the current auxiliary value + /// \return the boolean result + bool canSetAuxiliary(bool& theValue) const; + + /// Changes the sketcher entity construction argument value + /// \param isChecked if true, the feature is a construction + void setAuxiliary(const bool isChecked); + public slots: /// Process sketch plane selected event void onPlaneSelected(const std::shared_ptr& thePln); @@ -141,8 +157,12 @@ private slots: /// Process the leave mouse of the view port. If the current operation is a create of /// a nested sketch feature, it hides the feature in the viewer void onLeaveViewPort(); - /// Listens the value changed signal and display the current operation feature + /// Listens to the value changed signal and display the current operation feature + void onBeforeValuesChangedInPropertyPanel(); + /// Listens to the signal about values are to be changed in the property panel void onValuesChangedInPropertyPanel(); + /// Listens to the signal about the modification of the values have been done in the property panel + void onAfterValuesChangedInPropertyPanel(); void onMousePressed(ModuleBase_IViewWindow*, QMouseEvent*); void onMouseReleased(ModuleBase_IViewWindow*, QMouseEvent*); @@ -151,7 +171,13 @@ private slots: void onApplicationStarted(); void onBeforeWidgetActivated(ModuleBase_ModelWidget* theWidget); + void onBeforeContextMenu(); + void onAfterContextMenu(); + private: + /// Launches the operation from current highlighting + void launchEditing(); + /// Returns list of strings which contains id's of sketch operations static QStringList sketchOperationIdList(); @@ -160,20 +186,8 @@ private: void get2dPoint(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent, Point& thePoint); - typedef QList AttributeList; - typedef QMap FeatureToAttributesMap; - typedef std::map, std::set > > + typedef QMap, std::set > > FeatureToSelectionMap; - /// Obtains the current selection of the object in the workshop viewer by a map of feature to attributes - /// It calls the next method for each feature - /// \param theFeatureToAttributes a map of feature to attributes - /// \param theSketch a current sketch feature - /// \param theWorkshop a workshop to have an access to AIS context and displayer - /// \param theSelection a container for the selection, to save results and attributres for a feature - static void getCurrentSelection(const FeatureToAttributesMap& theFeatureToAttributes, - const FeaturePtr& theSketch, - ModuleBase_IWorkshop* theWorkshop, - FeatureToSelectionMap& theSelection); /// Obtains the current selection of the object in the workshop viewer /// It includes the selection in all modes of activation, even local context - vertices, edges @@ -219,17 +233,18 @@ private: /// \return an operation ModuleBase_Operation* getCurrentOperation() const; - /// Returns true if the operation is a create nested feature one - /// \param theOperation a checked operation - //// \return boolean value - bool isNestedCreateOperation(ModuleBase_Operation* theOperation) const; - /// Erase or display the feature of the current operation. If the mouse over the active view or /// a current value is changed by property panel, the feature is displayed otherwise it is hidden /// \param theOperation an operation which feature is to be displayed, it is nested create operation /// \param isToDisplay a flag about the display or erase the feature void visualizeFeature(ModuleBase_Operation* theOperation, const bool isToDisplay); + /// Saves the current selection in the viewer into an internal container + /// It obtains the selected attributes. The highlighted objects can be processes as the selected ones + /// \param theHighlightedUse a boolean flag + void storeSelection(const bool theHighlightedOnly = false); + void restoreSelection(); + private: PartSet_Module* myModule; @@ -239,14 +254,15 @@ private: bool myIsPropertyPanelValueChanged; /// the state that value in the property panel is changed bool myIsMouseOverWindow; /// the state that the mouse over the view bool myIsMouseOverViewProcessed; /// the state whether the over view state is processed by mouseMove method + bool myIsPopupMenuActive; /// the state of the popup menu is shown Point myCurrentPoint; Point myClickedPoint; CompositeFeaturePtr myCurrentSketch; - FeatureToAttributesMap myFeature2AttributeMap; /// a map of a feature to attributes - Handle(ModuleBase_ShapeInPlaneFilter) myPlaneFilter; + FeatureToSelectionMap myCurrentSelection; + bool myPreviousUpdateViewerEnabled; };