Salome HOME
Fix for constraints selection
[modules/shaper.git] / src / XGUI / XGUI_OperationMgr.h
index 0cda5543cac21bd86caa7adc9ea582a2ee03585a..2b3e31069c3fe3dabdca995463b0421cfd57fb32 100755 (executable)
@@ -20,6 +20,7 @@ class QKeyEvent;
 
 class ModuleBase_IWorkshop;
 class XGUI_Workshop;
+class XGUI_ShortCutListener;
 
 /**\class XGUI_OperationMgr
  * \ingroup GUI
@@ -42,11 +43,19 @@ Q_OBJECT
   /// Destructor
   virtual ~XGUI_OperationMgr();
 
+  /// Switch on short cut listener
+  void activate();
+  /// Switch off short cut listener
+  void deactivate();
+
   /// Set reference to workshop
   /// \param theWorkshop reference to workshop
   void setWorkshop(ModuleBase_IWorkshop* theWorkshop)
   { myWorkshop = theWorkshop; };
 
+  /// Current workshop
+  ModuleBase_IWorkshop* workshop() const { return myWorkshop; }
+
   /// Returns the current operation or NULL
   /// \return the current operation
   ModuleBase_Operation* currentOperation() const;
@@ -80,6 +89,8 @@ Q_OBJECT
   ModuleBase_Operation* previousOperation(ModuleBase_Operation* theOperation) const;
 
   /// Redefinition of virtual function
+  /// \param theObject a sender of the event
+  /// \param theEvent the event
   virtual bool eventFilter(QObject *theObject, QEvent *theEvent);
 
   /// Start the operation and append it to the stack of operations
@@ -98,18 +109,10 @@ Q_OBJECT
   /// \param theOperation an aborted operation
   void abortOperation(ModuleBase_Operation* theOperation);
 
-  /// Returns enable apply state 
-  /// \return theEnabled a boolean value
-  bool isApplyEnabled() const;
-
-  /// Returns valid state of the parent operation. If the current operation is the last one
-  /// it returns the valid state of the operation
-  /// \return boolean value
-  bool isParentOperationValid() const;
+  /// Slot that commits the current operation.
+  bool onCommitOperation();
 
 public slots:
-  /// Slot that commits the current operation.
-  void onCommitOperation();
   /// Slot that aborts the current operation.
   void onAbortOperation();
   /// Slot that validates the current operation using the validateOperation method.
@@ -136,17 +139,9 @@ signals:
   /// Emitted when current operation is aborted
   void operationAborted(ModuleBase_Operation* theOperation);
 
-  /// Signal is emitted after the current operation is filled with existing preselection.
-  void operationActivatedByPreselection();
-
   /// Signal is emitted after the key released click.
   void keyEnterReleased();
 
- protected:
-  /// Sets apply state to the value and emit signal about this state is changed
-  /// \param theEnabled the state value
-  void setApplyEnabled(const bool theEnabled);
-
 public: // TEMPORARY, it should be protected and be performed automatically
   /// Emits nestedStateChange for operations with an information about validity of the operation
   /// \param theOperation the sent operation. If it is NULL, all operations in the stack are sent.
@@ -173,10 +168,23 @@ protected: // TEMPORARY
 
  public slots:
   /// SLOT, that is called by the key in the property panel is clicked.
+  /// \param theObject a sender of the event
   /// \param theEvent the mouse event
-  bool onKeyReleased(QKeyEvent* theEvent);
+  bool onKeyReleased(QObject *theObject, QKeyEvent* theEvent);
+
+  /// The functionaly, that should be done by delete click
+  /// Fistly the active widget processes it, then workshop. If no one does not
+  /// process it, do nothing
+  /// \param theObject a sender of the event
+  bool onProcessDelete(QObject* theObject);
 
   protected slots:
+  /// The functionaly, that should be done by enter click
+  /// Fistly the active widget processes it, then module. If no one does not
+  /// process it, the current operation is committed
+  /// \param theObject a sender of the event
+  bool onProcessEnter(QObject *theObject);
+
   /// Slot that is called by an operation stop. Removes the stopped operation form the stack.
   /// If there is a suspended operation, restart it.
   void onOperationStopped();
@@ -205,7 +213,10 @@ protected: // TEMPORARY
   void onOperationResumed();
 
 private:
-  XGUI_Workshop* workshop() const;
+  /// Checks if the object is a parent or a child under
+  /// \param theObject an investivated object
+  /// \param theParent a candidate to be a parent
+  static bool isChildObject(const QObject* theObject, const QObject* theParent);
 
  private:
   typedef QList<ModuleBase_Operation*> Operations;  ///< definition for a list of operations
@@ -215,8 +226,7 @@ private:
   /// Current workshop
   ModuleBase_IWorkshop* myWorkshop;
 
-  /// Lock/Unlock access to Ok button in property panel
-  bool myIsApplyEnabled;
+  XGUI_ShortCutListener* myShortCutListener;
 };
 
 #endif