QGIS API Documentation
3.20.0-Odense (decaadbb31)
|
A grouped map of multiple QgsProperty objects, each referenced by a integer key value. More...
#include <qgspropertycollection.h>
Public Member Functions | |
QgsPropertyCollection (const QgsPropertyCollection &other) | |
Copy constructor. More... | |
QgsPropertyCollection (const QString &name=QString()) | |
Constructor for QgsPropertyCollection. 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... | |
bool | operator!= (const QgsPropertyCollection &other) const |
QgsPropertyCollection & | operator= (const QgsPropertyCollection &other) |
bool | operator== (const QgsPropertyCollection &other) const |
bool | prepare (const QgsExpressionContext &context=QgsExpressionContext()) const override |
Prepares the collection against a specified expression context. More... | |
virtual QgsProperty & | property (int key) |
Returns a reference to a matching property from the collection, if one exists. More... | |
QgsProperty | property (int key) const override |
Returns 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(), bool ignoreContext=false) 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... | |
QDateTime | valueAsDateTime (int key, const QgsExpressionContext &context, const QDateTime &defaultDateTime=QDateTime(), bool *ok=nullptr) const |
Calculates the current value of the property with the specified key and interprets it as a datetime. 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 318 of file qgspropertycollection.h.
QgsPropertyCollection::QgsPropertyCollection | ( | const QString & | name = QString() | ) |
Constructor for QgsPropertyCollection.
name | collection name |
Definition at line 120 of file qgspropertycollection.cpp.
QgsPropertyCollection::QgsPropertyCollection | ( | const QgsPropertyCollection & | other | ) |
Copy constructor.
Definition at line 124 of file qgspropertycollection.cpp.
|
overridevirtual |
Removes all properties from the collection.
Implements QgsAbstractPropertyCollection.
Definition at line 178 of file qgspropertycollection.cpp.
int QgsPropertyCollection::count | ( | ) | const |
Returns the number of properties contained within the collection.
Definition at line 157 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 304 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 312 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 203 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 268 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 341 of file qgspropertycollection.cpp.
bool QgsPropertyCollection::operator!= | ( | const QgsPropertyCollection & | other | ) | const |
Definition at line 152 of file qgspropertycollection.cpp.
QgsPropertyCollection & QgsPropertyCollection::operator= | ( | const QgsPropertyCollection & | other | ) |
Definition at line 135 of file qgspropertycollection.cpp.
bool QgsPropertyCollection::operator== | ( | const QgsPropertyCollection & | other | ) | const |
Definition at line 147 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 240 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 222 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 214 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns a list of property keys contained within the collection.
Implements QgsAbstractPropertyCollection.
Definition at line 166 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. |
ignoreContext | This parameter has been added in QGIS 3.14. When set to true , even fields not set in context's fields() will be reported - this is useful e.g. with vector tiles where the actual available field names may not be known beforehand. |
Implements QgsAbstractPropertyCollection.
Definition at line 254 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 187 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 197 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 320 of file qgspropertycollection.cpp.
|
overridevirtual |
Returns the calculated value of the property with the specified key from within the collection.
If you need the validity of the value (like ok provided from the valueAs* variants) refer to the property() and QgsProperty::value()
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 228 of file qgspropertycollection.cpp.