X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_OperationMgr.h;h=7a62ddbe3efd2cabecbfb81b341a28275580316f;hb=220bd2b37119be1c65abf88a88792445cb9d99f8;hp=4a9839b9a63865b8ff98e6ff75ede04a60892ee2;hpb=a6bfc24e24504892432c2b7ed93594400f0c0e87;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_OperationMgr.h b/src/XGUI/XGUI_OperationMgr.h old mode 100644 new mode 100755 index 4a9839b9a..7a62ddbe3 --- a/src/XGUI/XGUI_OperationMgr.h +++ b/src/XGUI/XGUI_OperationMgr.h @@ -20,6 +20,7 @@ class QKeyEvent; class ModuleBase_IWorkshop; class XGUI_Workshop; +class XGUI_ShortCutListener; /**\class XGUI_OperationMgr * \ingroup GUI @@ -42,6 +43,11 @@ 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) @@ -80,6 +86,7 @@ Q_OBJECT ModuleBase_Operation* previousOperation(ModuleBase_Operation* theOperation) const; /// Redefinition of virtual function + /// \param theObject a sender of the event virtual bool eventFilter(QObject *theObject, QEvent *theEvent); /// Start the operation and append it to the stack of operations @@ -90,8 +97,7 @@ Q_OBJECT /// Returns whether the operation can be started. Check if there is already started operation and /// the granted parameter of the launched operation /// \param theId id of the operation which is going to start - /// \param isAdditionallyGranted a boolean flag whether the id operation is granted in the previous one - bool canStartOperation(const QString& theId, const bool isAdditionallyGranted = false); + bool canStartOperation(const QString& theId); /// Aborts the parameter operation if it is current, else abort operations from the stack /// of operations until the operation is found. All operations upper the parameter one are @@ -99,22 +105,6 @@ Q_OBJECT /// \param theOperation an aborted operation void abortOperation(ModuleBase_Operation* theOperation); - /// Blocking/unblocking enabling of Ok button in property panel. - /// It is used when operation can not be validated even all attributes are valid - void setLockValidating(bool toLock); - - /// Returns state of validation locking - bool isValidationLocked() const { return myIsValidationLock; } - - /// 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; - public slots: /// Slot that commits the current operation. void onCommitOperation(); @@ -150,11 +140,6 @@ signals: /// 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. @@ -171,9 +156,9 @@ protected: // TEMPORARY /// Returns whether the parameter operation is granted in relation to the previous operation /// in a stack of started operations. It is used in canStopOperation to avoid warning message /// when granted operation is aborted, e.g. SketchLine in Sketch - /// \param theOperation the started operation + /// \param theId id of the operation which is checked /// \return boolean result - bool isGrantedOperation(ModuleBase_Operation* theOperation); + bool isGrantedOperation(const QString& theId); /// Sets the feature as a current in the document /// \param theFeature a feature @@ -181,10 +166,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(); @@ -215,6 +213,11 @@ protected: // TEMPORARY 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 Operations; ///< definition for a list of operations Operations myOperations; ///< a stack of started operations. The active operation is on top, @@ -223,10 +226,7 @@ private: /// Current workshop ModuleBase_IWorkshop* myWorkshop; - /// Lock/Unlock access to Ok button in property panel - bool myIsValidationLock; - /// Lock/Unlock access to Ok button in property panel - bool myIsApplyEnabled; + XGUI_ShortCutListener* myShortCutListener; }; #endif