open_iA 2025.6
Loading...
Searching...
No Matches
iAAttributes.cpp File Reference
#include "iAAttributes.h"
#include "iAValueTypeVectorHelpers.h"
#include <QColor>
#include <QFileInfo>
#include <QTextStream>
#include "iASettings.h"
#include <QDomElement>
#include <QDomNamedNodeMap>

Functions

void addAttr (iAAttributes &attributes, QString const &name, iAValueType valueType, QVariant defaultValue, double min, double max)
 Add a new attribute specified by the parameters to the given attributes list.
 
bool attributeCheck (iAAttributeDescriptor const &param, QVariant const &paramValue)
 the default check for a single parameter descriptor & value combination
 
bool checkAttributes (iAAttributes const &attributes, QVariantMap const &values, QStringList *invalidValues)
 Check whether the given parameters values are valid; for example, for numeric parameters it checks whether they are within the given limits, for categorical whether the value is one of the given list of possible values etc.
 
iAAttributes cloneAttributes (iAAttributes const &attributes)
 Clone the given list of attributes and return the copy.
 
iAAttributes combineAttributesWithValues (iAAttributes const &attributes, QVariantMap const &values)
 Merge the given values into the descriptors (returns new descriptors with the given values as default values)
 
int countAttributes (iAAttributes const &attributes, iAAttributeDescriptor::iAAttributeType type)
 Count the attribute descriptors of the given type in the given collection.
 
std::shared_ptr< iAAttributescreateAttributes (QTextStream &in)
 Create a descriptor from a given text stream.
 
QVariantMap extractValues (iAAttributes const &attributes)
 Extract just the (default) values from the given descriptors into a map.
 
int findAttribute (iAAttributes const &attributes, QString const &name)
 Find a descriptor with the given name and return its index.
 
QVariant getValue (iAAttributes const &attributes, QString const &name)
 Get the default value of the descriptor with the given name.
 
bool isAttributeEnabled (iAAttributeDescriptor const &p, QVariantMap const &values)
 check whether an attribute is enabled, given its dependency specifications and collection of parameter values
 
QVariantMap joinValues (QVariantMap const &baseValues, QVariantMap const &newValues)
 Merge the values from newValues and baseValues into a new map.
 
void loadAttributeValues (QDomNamedNodeMap const &xml, iAAttributes &attributes)
 load attributes from XML
 
void removeAttribute (iAAttributes &attributes, QString const &name)
 Removes the attribute with the given name.
 
void setApplyingValues (QVariantMap &out, iAAttributes const &attributes, QVariantMap const &in)
 In a given key/value map outMap, set values from another map inMap, for all keys that exist in the given attributes and the inMap.
 
void setDefaultValues (iAAttributes &attributes, QVariantMap const &values)
 Merge the given values into the descriptors (modifying the given ones in place, in contrast to combineAttributesWithValues, which creates a new list)
 
void setDependencies (iAAttributes &attributes, QString const &name, QStringList const &dependencies)
 set attribute with name to depend on the list of attributes in dependencies (i.e.
 
void setDependency (iAAttributes &attributes, QString const &name, QString const &dependency)
 set attribute with name to depend on a single other attribute;
 
void storeAttributes (QTextStream &out, iAAttributes const &attributes)
 Store the given descriptors in the given text stream.
 
void storeAttributeValues (QDomElement &xml, iAAttributes const &attributes)
 store attributes to XML
 

Function Documentation

◆ addAttr()

void addAttr ( iAAttributes & attributes,
QString const & name,
iAValueType valueType,
QVariant defaultValue,
double min,
double max )

Add a new attribute specified by the parameters to the given attributes list.

◆ attributeCheck()

bool attributeCheck ( iAAttributeDescriptor const & param,
QVariant const & paramValue )

the default check for a single parameter descriptor & value combination

◆ checkAttributes()

bool checkAttributes ( iAAttributes const & attributes,
QVariantMap const & values,
QStringList * invalidValues = nullptr )

Check whether the given parameters values are valid; for example, for numeric parameters it checks whether they are within the given limits, for categorical whether the value is one of the given list of possible values etc.

Parameters
attributesa list of attribute specifications
valuesvalues for the attributes, to be checked whether they are valid
invalidValuesif given (!= nullptr), after the call it contains a list of the names of all parameters with invalid values
Returns
true if the given values are valid given the attribute specifications, false otherwise

◆ cloneAttributes()

iAAttributes cloneAttributes ( iAAttributes const & attributes)

Clone the given list of attributes and return the copy.

◆ combineAttributesWithValues()

iAAttributes combineAttributesWithValues ( iAAttributes const & attributes,
QVariantMap const & values )

Merge the given values into the descriptors (returns new descriptors with the given values as default values)

◆ countAttributes()

int countAttributes ( iAAttributes const & attributes,
iAAttributeDescriptor::iAAttributeType type )

Count the attribute descriptors of the given type in the given collection.

◆ createAttributes()

std::shared_ptr< iAAttributes > createAttributes ( QTextStream & in)

Create a descriptor from a given text stream.

◆ extractValues()

QVariantMap extractValues ( iAAttributes const & attributes)

Extract just the (default) values from the given descriptors into a map.

◆ findAttribute()

int findAttribute ( iAAttributes const & attributes,
QString const & name )

Find a descriptor with the given name and return its index.

◆ getValue()

QVariant getValue ( iAAttributes const & attributes,
QString const & name )

Get the default value of the descriptor with the given name.

◆ isAttributeEnabled()

bool isAttributeEnabled ( iAAttributeDescriptor const & p,
QVariantMap const & values )

check whether an attribute is enabled, given its dependency specifications and collection of parameter values

◆ joinValues()

QVariantMap joinValues ( QVariantMap const & baseValues,
QVariantMap const & newValues )

Merge the values from newValues and baseValues into a new map.

Creates and returns a map that contains key/value pairs from both given maps; values that exist in both get assigned the value from newValues

Parameters
[in]baseValuesused to initialize the resulting map
[in]newValuesall key/value pairs in this map are added to the result, overwriting ones that might already be present from baseValues

◆ loadAttributeValues()

void loadAttributeValues ( QDomNamedNodeMap const & xml,
iAAttributes & attributes )

load attributes from XML

◆ removeAttribute()

void removeAttribute ( iAAttributes & attributes,
QString const & name )

Removes the attribute with the given name.

◆ setApplyingValues()

void setApplyingValues ( QVariantMap & outMap,
iAAttributes const & attributes,
QVariantMap const & inMap )

In a given key/value map outMap, set values from another map inMap, for all keys that exist in the given attributes and the inMap.

Parameters
[out]outMapthe key/value map that is modified (note that this map isn't emptied before; so all key/value pairs that were already contained in there, and are not in both attributes and inMap, will remain unchanged.
[in]attributeslist of possible attributes - only keys of outMap which have a corresponding entry in here will be set
[in]inMapthe map of key/values used as input; any values existing in this map AND in attributes, will be set in outMap

◆ setDefaultValues()

void setDefaultValues ( iAAttributes & attributes,
QVariantMap const & values )

Merge the given values into the descriptors (modifying the given ones in place, in contrast to combineAttributesWithValues, which creates a new list)

◆ setDependencies()

void setDependencies ( iAAttributes & attributes,
QString const & name,
QStringList const & dependencies )

set attribute with name to depend on the list of attributes in dependencies (i.e.

attribute name is only effective if dependencies are set - currently only boolean dependencies are supported!)

◆ setDependency()

void setDependency ( iAAttributes & attributes,
QString const & name,
QString const & dependency )

set attribute with name to depend on a single other attribute;

See also
setDependencies for more details

◆ storeAttributes()

void storeAttributes ( QTextStream & out,
iAAttributes const & attributes )

Store the given descriptors in the given text stream.

◆ storeAttributeValues()

void storeAttributeValues ( QDomElement & xml,
iAAttributes const & attributes )

store attributes to XML