/**\class ModuleBase_ModelWidget
* \ingroup GUI
- * \brief An abstract custom widget class. This class realization is assumed to create some controls.
+ * \brief An abstract custom widget class. This class realization is assumed
+ * to create some controls.
* The controls values modification should send signal about values change.
*
* Common interface for widgets in the property panel.
ModifiedInViewer, /// modification performed by viewer events
Reset }; /// the value is reset
+ enum EnableState { On, /// the widget value is always enabled
+ Off, /// the widget value is always disabled
+ /// the widget value enable state is defined in preferences
+ DefinedInPreferences };
+
/// Constructor
/// \param theParent the parent object
/// \param theData the widget configuration. The attribute of the model widget is obtained from
/// \return the boolean result
bool isInternal() const { return myIsInternal; }
- /// Returns true, if the obligatory value of the widget is not defined in the XML or has true value
+ /// Returns true, if the obligatory value of the widget is
+ /// not defined in the XML or has true value
/// \return the boolean result
bool isObligatory() const { return myIsObligatory; }
+ /// Returns true, if the widget value is enabled and might be modified manualy.
+ /// It returns false if the application preferences allow having disabled value
+ /// and the internal state tells to disable
+ /// \return the boolean result
+ virtual bool isValueEnabled() const;
+
/// Returns this parameter value in the xml file
/// \return the boolean result
bool isUseReset() const { return myUseReset; }
/// \param theValues a list of presentations
virtual void getHighlighted(QList<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues) {};
- /// Checks if the selection presentation is valid in widget
+ /// Checks if the selection presentation is valid in widget
/// \param theValue a selected presentation in the view
/// \return a boolean value
- virtual bool isValidSelectionCustom(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue) { return true; }
+ virtual bool isValidSelectionCustom(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue)
+ { return true; }
/// Returns widget validator, by default it is NULL. To be created in a child if necessary
ModuleBase_WidgetValidator* widgetValidator() { return myWidgetValidator; }
- /// Restore value from attribute data to the widget's control. Emits signals before and after store
+ /// Restore value from attribute data to the widget's control.
+ /// Emits signals before and after store
/// \return True in success
bool restoreValue();
/// \return True in success
bool storeValue();
- /// Set focus to the first control of the current widget. The focus policy of the control is checked.
+ /// Set focus to the first control of the current widget.
+ /// The focus policy of the control is checked.
/// If the widget has the NonFocus focus policy, it is skipped.
/// \return the state whether the widget can accept the focus
virtual bool focusTo();
/// The method called when widget is activated
virtual void activateCustom() {};
+ QString translateString(const QString& theMsg) const;
+
protected slots:
/// Processing of values changed in model widget by store the current value to the feature
void onWidgetValuesChanged();
FeaturePtr myFeature;
/// Flag which shows that current operation is in editing mode
- bool myIsEditing;
+ bool myIsEditing;
/// Flag which shows whether current widget is obligatory
/// The non-obligatory widgets should not accept the focus in the property panel
bool myIsObligatory;
+ /// Flag about value of the control is enabled (can be modified)
+ EnableState myIsValueEnabled;
+
/// The widget value state
ValueState myState;
/// Value should be computed on execute, like radius for circle's constraint (can not be zero)
bool myIsComputedDefault;
- /// the default value, which is defined in the XML for this attribute
+ /// the default value, which is defined in the XML for this attribute
std::string myDefaultValue;
/// an XML internal state