DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
Parameter for indexed strings selected from a predefined list of strings. If ParamType
is of type ParamsBase::IndexedTextList, then extend TypedParamBase's
functionality by providing text list functionality and by overriding AddToDialogChild(). In this case, the parameter does not store the string itself, but the selected index (of type Util::TextListIndexType) of the predefined text list.
More...
Public Member Functions | |
Param (ParamsBase &Owner, Util::TextListType &&TextList, std::string ParamName, std::string_view ParamTitle, std::string_view ParamDescription, bool NeedsResetToApplyChange=true, UnderlyingIndexedTextListParamType::UnderlyingType DefaultValue=0) | |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true). More... | |
Param (ParamsBase &Owner, Util::TextListType &&TextList, std::string ParamName, UnderlyingIndexedTextListParamType::UnderlyingType DefaultValue=0) | |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false). More... | |
const ParamType & | operator= (const ParamType &NewValue) |
Assigns a new value to this parameter. The operator cannot be accessed by Object because this function is not const. More... | |
Thread-safe getter functions | |
Thread-safe since const member variables are returned. | |
const auto & | GetTextList () const noexcept |
Returns the predefined selection options as a list of strings. More... | |
Public Member Functions inherited from DynExp::ParamsBase::TypedParamBase< ParamType > | |
ParamType | GetDefaultValue () const noexcept |
Returns this parameter's default value. Thread-safe since a const member variable is returned. More... | |
operator ParamType () const noexcept | |
Converts the parameter implicitly to its underlying type returning its current value. More... | |
const ParamType & | Get () const noexcept |
Returns the parameter's value. More... | |
const ParamType & | operator= (const ParamType &NewValue) |
Assigns a new value to this parameter. The operator cannot be accessed by Object because this function is not const. More... | |
Public Member Functions inherited from DynExp::ParamsBase::ParamBase | |
ParamBase (const ParamBase &)=delete | |
ParamBase & | operator= (const ParamBase &)=delete |
QDomElement | ToXMLNode (QDomDocument &Document) const |
Converts this parameter to a Qt dom element (describing an XML node containing this parameter's name and value). More... | |
void | FromXMLNode (const QDomElement &XMLElement) |
Restores this parameter's value from the given Qt dom element (describing an XML node) More... | |
bool | Validate () |
Checks whether a valid value is assigned to this parameter. This function is not const since it is also intended to reset the parameter if it is invalid. More... | |
void | Reset () |
Resets this parameter to its default value. More... | |
bool | IsUserEditable () const noexcept |
Returns ParamBase::UserEditable. More... | |
std::string_view | GetParamName () const noexcept |
Returns ParamBase::ParamName. More... | |
std::string_view | GetParamTitle () const noexcept |
Returns ParamBase::ParamTitle. More... | |
std::string_view | GetParamDescription () const noexcept |
Returns ParamBase::ParamDescription. More... | |
bool | GetNeedsResetToApplyChange () const noexcept |
Returns ParamBase::NeedsResetToApplyChange. More... | |
Private Member Functions | |
virtual void | AddToDialogChild (ParamsConfigDialog &Dialog) override final |
Appends this parameter to a settings dialog making it configurable by the user. More... | |
virtual bool | ValidateValue (const ParamType &Value) const override |
Called by ValidateChild(). Validates a single value. Override to validate the value which is about to be assigned to the parameter. Returns true by default. More... | |
Private Attributes | |
const Util::TextListType | TextList |
Predefined selection options. More... | |
Additional Inherited Members | |
Public Types inherited from DynExp::ParamsBase::TypedParamBase< ParamType > | |
using | UnderlyingType = ParamType |
Public Attributes inherited from DynExp::ParamsBase::ParamBase | |
ParamsBaseOnlyType | ParamsBaseOnly |
Provides the class ParamsBase access to some private members of class ParamBase . More... | |
Protected Member Functions inherited from DynExp::ParamsBase::TypedParamBase< ParamType > | |
TypedParamBase (ParamsBase &Owner, std::string ParamName, std::string_view ParamTitle, std::string_view ParamDescription, bool NeedsResetToApplyChange=true, ParamType DefaultValue=ParamType()) | |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true). More... | |
TypedParamBase (ParamsBase &Owner, std::string ParamName, ParamType DefaultValue=ParamType()) | |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false). More... | |
virtual void | ToXMLNodeChild (QDomDocument &Document, QDomElement &XMLElement) const override |
Converts this parameter to a Qt dom element (describing an XML node containing this parameter's name and value). More... | |
virtual void | FromXMLNodeChild (const QDomElement &XMLElement) override |
Restores this parameter's value from the given Qt dom element (describing an XML node) More... | |
Protected Member Functions inherited from DynExp::ParamsBase::ParamBase | |
ParamBase (ParamsBase &Owner, std::string ParamName, std::string_view ParamTitle, std::string_view ParamDescription, bool NeedsResetToApplyChange) | |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true). More... | |
ParamBase (ParamsBase &Owner, std::string ParamName) | |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false). More... | |
virtual | ~ParamBase ()=0 |
const auto & | GetOwner () const noexcept |
Returns the ParamsBase instance owning this ParamBase instance. More... | |
auto & | GetOwner () noexcept |
Returns the ParamsBase instance owning this ParamBase instance. More... | |
Parameter for indexed strings selected from a predefined list of strings. If ParamType
is of type ParamsBase::IndexedTextList, then extend TypedParamBase's
functionality by providing text list functionality and by overriding AddToDialogChild(). In this case, the parameter does not store the string itself, but the selected index (of type Util::TextListIndexType) of the predefined text list.
ParamType | Indexed text list type (same as or derived from ParamsBase::IndexedTextList) |
|
inline |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true).
Owner | ParamsBase instance owning this parameter. |
ParamName | Name of the parameter to be used in the XML config file. std::string to allow for auto-generated names. |
ParamTitle | Title of the parameter to be displayed in settings dialogs. A static string literal with a constant address is expected. |
ParamDescription | Detailed description of the parameter to be displayed in settings dialogs. A static string literal with a constant address is expected. |
NeedsResetToApplyChange | Indicated whether the object this parameter belongs to needs to be reset to apply changes if this parameter's value has changed. |
DefaultValue | Default value to assign to the constructed parameter |
TextList | Predefined list of strings to select a string from |
|
inline |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false).
Owner | ParamsBase instance owning this parameter. |
ParamName | Name of the parameter to be used in the XML config file. std::string to allow for auto-generated names. |
DefaultValue | Default value to assign to the constructed parameter |
TextList | List of strings to select a string from |
|
inlinefinaloverrideprivatevirtual |
Appends this parameter to a settings dialog making it configurable by the user.
Dialog | Reference to the settings dialog to append the parameter to |
Implements DynExp::ParamsBase::ParamBase.
|
inlinenoexcept |
|
inline |
Assigns a new value to this parameter. The operator cannot be accessed by Object
because this function is not const.
NewValue | New value to assign |
Util::InvalidArgException | is thrown if the value to assign to the parameter is not considered valid as determined by a call to ParamBase::Validate(). |
|
inlineoverrideprivatevirtual |
Called by ValidateChild(). Validates a single value. Override to validate the value which is about to be assigned to the parameter. Returns true by default.
NewValue | Value to be validated before the assignment |
NewValue
is considered valid, false otherwise. Reimplemented from DynExp::ParamsBase::TypedParamBase< ParamType >.
|
private |