QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
A grouped map of multiple QgsProperty objects, each referenced by a integer key value. More...
#include <qgspropertycollection.h>
Public Member Functions | |
QgsPropertyCollection (const QString &name=QString()) | |
Constructor for QgsPropertyCollection. More... | |
QgsPropertyCollection (const QgsPropertyCollection &other) | |
Copy constructor. More... | |
void | clear () override |
Removes all properties from the collection. More... | |
int | count () const |
Returns the number of properties contained within the collection. More... | |
bool | hasActiveProperties () const override |
Returns true if the collection has any active properties, or false if all properties within the collection are deactivated. More... | |
bool | hasDynamicProperties () const override |
Returns true if the collection has any active, non-static properties, or false if either all non-static properties within the collection are deactivated or if the collection only contains static properties. More... | |
bool | hasProperty (int key) const override |
Returns true if the collection contains a property with the specified key. More... | |
bool | isActive (int key) const override |
Returns true if the collection contains an active property with the specified key. More... | |
bool | loadVariant (const QVariant &configuration, const QgsPropertiesDefinition &definitions) override |
Loads this property collection from a QVariantMap, wrapped in a QVariant. More... | |
QgsPropertyCollection & | operator= (const QgsPropertyCollection &other) |
bool | prepare (const QgsExpressionContext &context=QgsExpressionContext()) const override |
Prepares the collection against a specified expression context. More... | |
QgsProperty | property (int key) const override |
Returns a matching property from the collection, if one exists. More... | |
virtual QgsProperty & | property (int key) |
Returns a reference to a matching property from the collection, if one exists. More... | |
QSet< int > | propertyKeys () const override |
Returns a list of property keys contained within the collection. More... | |
QSet< QString > | referencedFields (const QgsExpressionContext &context=QgsExpressionContext()) const override |
Returns the set of any fields referenced by the active properties from the collection. More... | |
void | setProperty (int key, const QgsProperty &property) |
Adds a property to the collection and takes ownership of it. More... | |
void | setProperty (int key, const QVariant &value) |
Convenience method, creates a QgsStaticProperty and stores it within the collection. More... | |
QVariant | toVariant (const QgsPropertiesDefinition &definitions) const override |
Saves this property collection to a QVariantMap, wrapped in a QVariant. More... | |
QVariant | value (int key, const QgsExpressionContext &context, const QVariant &defaultValue=QVariant()) const override |
Returns the calculated value of the property with the specified key from within the collection. More... | |
Public Member Functions inherited from QgsAbstractPropertyCollection | |
QgsAbstractPropertyCollection (const QString &name=QString()) | |
Constructor for QgsAbstractPropertyCollection. More... | |
virtual | ~QgsAbstractPropertyCollection ()=default |
QString | name () const |
Returns the descriptive name of the property collection. More... | |
virtual bool | readXml (const QDomElement &collectionElem, const QgsPropertiesDefinition &definitions) |
Reads property collection state from an XML element. More... | |
void | setName (const QString &name) |
Sets the descriptive name for the property collection. More... | |
bool | valueAsBool (int key, const QgsExpressionContext &context, bool defaultValue=false, bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as an boolean. More... | |
QColor | valueAsColor (int key, const QgsExpressionContext &context, const QColor &defaultColor=QColor(), bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as a color. More... | |
double | valueAsDouble (int key, const QgsExpressionContext &context, double defaultValue=0.0, bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as a double. More... | |
int | valueAsInt (int key, const QgsExpressionContext &context, int defaultValue=0, bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as an integer. More... | |
QString | valueAsString (int key, const QgsExpressionContext &context, const QString &defaultString=QString(), bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as a string. More... | |
virtual bool | writeXml (QDomElement &collectionElem, const QgsPropertiesDefinition &definitions) const |
Writes the current state of the property collection into an XML element. More... | |
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
Properties within a collection are referenced by an integer key. This is done to avoid the cost of string creation and comparisons which would be required by a string key. The intended use case is that a context specific enum is cast to int and used for the key value. Examples of such enums are :
Definition at line 288 of file qgspropertycollection.h.
QgsPropertyCollection::QgsPropertyCollection | ( | const QString & | name = QString() | ) |
Constructor for QgsPropertyCollection.
name | collection name |
Definition at line 108 of file qgspropertycollection.cpp.
QgsPropertyCollection::QgsPropertyCollection | ( | const QgsPropertyCollection & | other | ) |
Copy constructor.
Definition at line 112 of file qgspropertycollection.cpp.
|
overridevirtual |
Removes all properties from the collection.
Implements QgsAbstractPropertyCollection.
Definition at line 156 of file qgspropertycollection.cpp.
int QgsPropertyCollection::count | ( | ) | const |
Returns the number of properties contained within the collection.
Definition at line 135 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns true
if the collection has any active properties, or false
if all properties within the collection are deactivated.
Implements QgsAbstractPropertyCollection.
Definition at line 276 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns true
if the collection has any active, non-static properties, or false
if either all non-static properties within the collection are deactivated or if the collection only contains static properties.
Implements QgsAbstractPropertyCollection.
Definition at line 284 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns true
if the collection contains a property with the specified key.
key | integer key for property. The intended use case is that a context specific enum is cast to int and used for the key value. |
Implements QgsAbstractPropertyCollection.
Definition at line 181 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns true
if the collection contains an active property with the specified key.
key | integer key for property to test. The intended use case is that a context specific enum is cast to int and used for the key value. |
Implements QgsAbstractPropertyCollection.
Definition at line 243 of file qgspropertycollection.cpp.
|
overridevirtual |
Loads this property collection from a QVariantMap, wrapped in a QVariant.
You can use QgsXmlUtils::readVariant to save it to an XML document.
Implements QgsAbstractPropertyCollection.
Definition at line 313 of file qgspropertycollection.cpp.
QgsPropertyCollection & QgsPropertyCollection::operator= | ( | const QgsPropertyCollection & | other | ) |
Definition at line 123 of file qgspropertycollection.cpp.
|
overridevirtual |
Prepares the collection against a specified expression context.
Calling prepare before evaluating the collection's properties multiple times allows precalculation of expensive setup tasks such as parsing expressions. Returns true
if preparation was successful.
Implements QgsAbstractPropertyCollection.
Definition at line 215 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns a matching property from the collection, if one exists.
key | integer key for property to return. The intended use case is that a context specific enum is cast to int and used for the key value. |
Implements QgsAbstractPropertyCollection.
Definition at line 189 of file qgspropertycollection.cpp.
|
virtual |
Returns a reference to a matching property from the collection, if one exists.
key | integer key for property to return. The intended use case is that a context specific enum is cast to int and used for the key value. |
Definition at line 197 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns a list of property keys contained within the collection.
Implements QgsAbstractPropertyCollection.
Definition at line 144 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns the set of any fields referenced by the active properties from the collection.
context | expression context the properties will be evaluated against. |
Implements QgsAbstractPropertyCollection.
Definition at line 229 of file qgspropertycollection.cpp.
void QgsPropertyCollection::setProperty | ( | int | key, |
const QgsProperty & | property | ||
) |
Adds a property to the collection and takes ownership of it.
key | integer key for property. Any existing property with the same key will be removed and replaced by this property. The intended use case is that a context specific enum is cast to int and used for the key value. |
property | property to add. Ownership is transferred to the collection. Setting an invalid property will remove the property from the collection. |
Definition at line 165 of file qgspropertycollection.cpp.
void QgsPropertyCollection::setProperty | ( | int | key, |
const QVariant & | value | ||
) |
Convenience method, creates a QgsStaticProperty and stores it within the collection.
key | integer key for property. Any existing property with the same key will be deleted and replaced by this property. The intended use case is that a context specific enum is cast to int and used for the key value. |
value | static value for property |
Definition at line 175 of file qgspropertycollection.cpp.
|
overridevirtual |
Saves this property collection to a QVariantMap, wrapped in a QVariant.
You can use QgsXmlUtils::writeVariant to save it to an XML document.
Implements QgsAbstractPropertyCollection.
Definition at line 292 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns the calculated value of the property with the specified key from within the collection.
key | integer key for property to return. The intended use case is that a context specific enum is cast to int and used for the key value. |
context | expression context to evaluate property against |
defaultValue | default value to return if no matching, active property found or if the property value cannot be calculated |
Implements QgsAbstractPropertyCollection.
Definition at line 203 of file qgspropertycollection.cpp.