ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
iprm::IParameterStateProvider Class Referenceabstract

Provider of state information for a parameter inside a parameter set. More...

#include <IParameterStateProvider.h>

Inheritance diagram for iprm::IParameterStateProvider:
istd::IChangeable istd::IPolymorphic iprm::CParameterStateProviderComp iprm::CSelectionBasedParameterStateProviderComp

Public Types

enum  StateType { ST_EDIT }
 Type of state to query. More...
 
enum  ParameterState { PS_UNKNOWN , PS_ON , PS_OFF }
 Possible parameter states. More...
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

virtual ParameterState GetState (const iprm::IParamsSet &paramSet, const QByteArray &parameterId, StateType stateType) const =0
 Return state for the given parameter.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Provider of state information for a parameter inside a parameter set.

IParameterStateProvider determines the state (such as editability) of parameters within a parameter set based on application logic or context. This enables dynamic control over which parameters are editable in different scenarios.

This interface is commonly used to:

Usage Example

// Assuming stateProvider is obtained from a component
// Assuming paramsSet is obtained
iprm::IParamsSet* paramsSet;
// Check if a parameter is editable
QByteArray paramId = "threshold";
stateProvider->GetState(
*paramsSet,
paramId,
switch (editState)
{
qDebug() << "Parameter is editable";
// Allow user to edit
break;
qDebug() << "Parameter is read-only";
// Disable editing UI
break;
qDebug() << "State not determined by provider";
// Use default behavior
break;
}
Provider of state information for a parameter inside a parameter set.
@ ST_EDIT
Get the "edit" status of the parameter.
virtual ParameterState GetState(const iprm::IParamsSet &paramSet, const QByteArray &parameterId, StateType stateType) const =0
Return state for the given parameter.
ParameterState
Possible parameter states.
@ PS_OFF
State is inactive (e.g., parameter is read-only)
@ PS_UNKNOWN
State is not determined by this provider.
@ PS_ON
State is active (e.g., parameter is editable)
Set of general parameters.
Definition IParamsSet.h:81

Checking Multiple Parameters

iprm::IParamsSet::Ids paramIds = paramsSet->GetParamIds();
for (const QByteArray& id : paramIds)
{
auto state = stateProvider->GetState(
{
qDebug() << "Parameter" << id << "is editable";
}
}
virtual Ids GetParamIds(bool editableOnly=false) const =0
Get list of used parameter IDs in the parameter set.
QSet< QByteArray > Ids
Definition IParamsSet.h:83
Note
Inherits from istd::IChangeable for change notification support.
State providers enable separation of UI logic from data model.
See also
IParamsSet

Definition at line 91 of file IParameterStateProvider.h.

Member Enumeration Documentation

◆ ParameterState

Possible parameter states.

States that a parameter can be in for a given state type.

Enumerator
PS_UNKNOWN 

State is not determined by this provider.

PS_ON 

State is active (e.g., parameter is editable)

PS_OFF 

State is inactive (e.g., parameter is read-only)

Definition at line 113 of file IParameterStateProvider.h.

◆ StateType

Type of state to query.

Different state types can be checked for parameters.

Enumerator
ST_EDIT 

Get the "edit" status of the parameter.

Determines whether the parameter can be modified.

Definition at line 99 of file IParameterStateProvider.h.

Member Function Documentation

◆ GetState()

virtual ParameterState iprm::IParameterStateProvider::GetState ( const iprm::IParamsSet paramSet,
const QByteArray &  parameterId,
StateType  stateType 
) const
pure virtual

Return state for the given parameter.

Queries the state of a specific parameter within a parameter set.

Parameters
paramSetThe parameter set containing the parameter.
parameterIdID of the parameter to check.
stateTypeType of state to query (e.g., ST_EDIT).
Returns
The state of the parameter: PS_ON, PS_OFF, or PS_UNKNOWN.
Note
PS_UNKNOWN indicates this provider doesn't determine the state, allowing other providers or default behavior to apply.
// Check if parameter can be edited
auto editState = stateProvider->GetState(
*paramsSet,
"paramId",
bool canEdit = (editState == iprm::IParameterStateProvider::PS_ON);
See also
StateType, ParameterState

Implemented in iprm::CParameterStateProviderComp, and iprm::CSelectionBasedParameterStateProviderComp.


The documentation for this class was generated from the following file: