Salome HOME
Issue #251. Append Export/Import NewGeom commands in the SALOME desktop.
[modules/shaper.git] / src / PartSet / PartSet_OperationFeatureEdit.h
index 293c63d952fd60f68267e7d34dafd04fc3d808bf..267b494c67d2bc75b0a5833e1982e0b667481fe1 100644 (file)
@@ -71,6 +71,14 @@ Q_OBJECT
   /// Destructor
   virtual ~PartSet_OperationFeatureEdit();
 
+
+  /// Initialisation of operation with preliminary selection
+  /// \param theSelected the list of selected presentations
+  /// \param theHighlighted the list of highlighted presentations
+  /// \param theViewer a viewer to have the viewer the eye position
+  virtual void initSelection(ModuleBase_ISelection* theSelection,
+                             ModuleBase_IViewer* theViewer);
+
   /// Processes the mouse pressed in the point
   /// \param theEvent the mouse event
   /// \param theView a viewer to have the viewer the eye position
@@ -116,6 +124,10 @@ Q_OBJECT
     CompositeFeaturePtr theCompositeFeature = CompositeFeaturePtr());
 
  protected:
+   void fillFeature2Attribute(const QList<ModuleBase_ViewerPrs>& thePresentations,
+                              ModuleBase_IViewer* theViewer,
+                              std::map<FeaturePtr, std::list<std::string> >& theFeature2Attribute);
+
   /// Emits a signal about the selection blocking. Emits a signal to change the selection.
   /// If the block is true, the signal clear selection, otherwise if restore selection flag allows,
   /// the internal operation features are to be selected
@@ -124,11 +136,21 @@ Q_OBJECT
   //void blockSelection(bool isBlocked, const bool isRestoreSelection = true);
 
   /// Sends the features
-  void sendFeatures();
+  /// \param theIsAllFeatures a boolean value whether all features should be send or only the highlighted ones
+  void sendFeatures(const bool theIsAllFeatures);
+
+  /// Sends signal about the current features are to be deactivated
+  void emitFeaturesDeactivation();
 
  private:
+  // the next map should be removed when selection is processed in the move function
+  std::map<FeaturePtr, std::list<std::string> > myHighlightedFeature2Attribute; /// a map of a feature to attributes
+  std::map<FeaturePtr, std::list<std::string> > myAllFeature2Attribute; /// a map of a feature to attributes
+
   Point myCurPoint;  ///< the current 3D point clicked or moved
   bool myIsBlockedSelection;  ///< the state of the last state of selection blocked signal
+  bool myIsBlockedByDoubleClick;  ///< the block value by double click is processed to avoid
+  ///< the mouse button release processing before the double click is finished
 };
 
 #endif