+ void keyReleased(QKeyEvent* theEvent);
+
+ /// The signal about the widget is get focus
+ /// \param theWidget the model base widget
+ void focusInWidget(ModuleBase_ModelWidget* theWidget);
+
+ /// The signal about the widget is lost focus
+ /// \param theWidget the model base widget
+ void focusOutWidget(ModuleBase_ModelWidget* theWidget);
+
+ protected:
+ /// Sets default value of widget. Nornaly, widget should fetch this value
+ /// from the xml. However, some widgets derived widgets could define it
+ void setDefaultValue(const std::string& theValue);
+ /// \brief Set the attribute name
+ /// \param theAttribute the string value with attribute name
+ void setAttributeID(const std::string& theAttribute)
+ {
+ myAttributeID = theAttribute;
+ }
+
+ /// Saves the internal parameters to the given feature. Emits signals before and after store
+ /// \return True in success
+ bool storeValue();
+
+ /// Saves the internal parameters to the given feature
+ /// \return True in success
+ virtual bool storeValueCustom() const = 0;
+
+ /// The methiod called when widget is activated
+ virtual void activateCustom() {};
+
+ /// Sends Update and Redisplay for the given object
+ /// \param theObj is updating object
+ void updateObject(ObjectPtr theObj) const;
+
+ /// Sends Move event for the given object
+ /// \param theObj is object for moving
+ void moveObject(ObjectPtr theObj) const;
+
+protected slots:
+ /// Processing of values changed in model widget by store the current value to the feature
+ void onWidgetValuesChanged();
+
+ protected:
+
+ /// The attribute name of the model feature
+ std::string myAttributeID;
+
+ /// Name of parent
+ std::string myParentId;
+
+ /// A feature which is processing by active operation
+ FeaturePtr myFeature;
+
+ /// Flag which shows that current operation is in editing mode
+ bool myIsEditing;