+ /// Signal about an operation is resumed. It is emitted after the resume() of operation is done.
+ void operationResumed(ModuleBase_Operation* theOperation);
+
+ /// Emitted when current operation is Committed
+ void operationCommitted(ModuleBase_Operation* theOperation);
+
+ /// Emitted when current operation is aborted
+ void operationAborted(ModuleBase_Operation* theOperation);
+
+ /// Signal is emitted after the apply enable state changed.
+ //void validationStateChanged(bool);
+
+ /// Signal is emitted after the model is modified. It is emitted for all active operations.
+ /// \param theFeatureKind a feature id
+ /// \param theState validity of the operation with the feature kind
+ //void nestedStateChanged(const std::string& theFeatureKind, const bool theState);
+
+ /// 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.
+ void updateApplyOfOperations(ModuleBase_Operation* theOperation = 0);
+
+ /// Commits the current operatin if it is valid
+ bool commitOperation();
+
+protected: // TEMPORARY
+ /// Sets the current operation or NULL
+ /// \param theOperation the started operation
+ void resumeOperation(ModuleBase_Operation* theOperation);
+
+ /// 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
+ /// \return boolean result
+ bool isGrantedOperation(ModuleBase_Operation* theOperation);
+
+ public slots:
+ /// SLOT, that is called by the key in the property panel is clicked.
+ /// \param theEvent the mouse event
+ bool onKeyReleased(QKeyEvent* theEvent);