QGIS API Documentation 3.30.0-'s-Hertogenbosch (f186b8efe0)
|
A child rule for QgsRuleBasedLabeling. More...
#include <qgsrulebasedlabeling.h>
Public Types | |
enum | RegisterResult { Filtered = 0 , Inactive , Registered } |
The result of registering a rule. More... | |
Public Member Functions | |
Rule (const Rule &rh)=delete | |
Rules cannot be copied. More... | |
Rule (QgsPalLayerSettings *settings, double maximumScale=0, double minimumScale=0, const QString &filterExp=QString(), const QString &description=QString(), bool elseRule=false) | |
takes ownership of settings, settings may be nullptr More... | |
~Rule () | |
bool | accept (QgsStyleEntityVisitorInterface *visitor) const |
Accepts the specified symbology visitor, causing it to visit all child rules associated with the rule. More... | |
bool | active () const |
Returns if this rule is active. More... | |
void | appendChild (QgsRuleBasedLabeling::Rule *rule) |
add child rule, take ownership, sets this as parent More... | |
QgsRuleBasedLabeling::RuleList & | children () |
Returns all children rules of this rule. More... | |
const QgsRuleBasedLabeling::RuleList & | children () const |
Returns all children rules of this rule. More... | |
QgsRuleBasedLabeling::Rule * | clone () const |
clone this rule, return new instance More... | |
void | createSubProviders (QgsVectorLayer *layer, RuleToProviderMap &subProviders, QgsRuleBasedLabelProvider *provider) |
add providers More... | |
bool | dependsOnScale () const |
Determines if scale based labeling is active. More... | |
QgsRuleBasedLabeling::RuleList | descendants () const |
Returns all children, grand-children, grand-grand-children, grand-gra... you get it. More... | |
QString | description () const |
A human readable description for this rule. More... | |
QString | filterExpression () const |
A filter that will check if this rule applies. More... | |
QgsRuleBasedLabeling::Rule * | findRuleByKey (const QString &key) |
Find a labeling rule thanks to its key. More... | |
const QgsRuleBasedLabeling::Rule * | findRuleByKey (const QString &key) const |
Try to find a rule given its unique key. More... | |
void | insertChild (int i, QgsRuleBasedLabeling::Rule *rule) |
add child rule, take ownership, sets this as parent More... | |
bool | isElse () const |
Check if this rule is an ELSE rule. More... | |
double | maximumScale () const |
Returns the maximum map scale (i.e. More... | |
double | minimumScale () const |
Returns the minimum map scale (i.e. More... | |
Rule & | operator= (const Rule &rh)=delete |
Rules cannot be copied. More... | |
QgsRuleBasedLabeling::Rule * | parent () |
The parent rule. More... | |
const QgsRuleBasedLabeling::Rule * | parent () const |
The parent rule. More... | |
void | prepare (QgsRenderContext &context, QSet< QString > &attributeNames, RuleToProviderMap &subProviders) |
call prepare() on sub-providers and populate attributeNames More... | |
std::tuple< RegisterResult, QList< QgsLabelFeature * > > | registerFeature (const QgsFeature &feature, QgsRenderContext &context, RuleToProviderMap &subProviders, const QgsGeometry &obstacleGeometry=QgsGeometry(), const QgsSymbol *symbol=nullptr) |
Register individual features. More... | |
void | removeChildAt (int i) |
delete child rule More... | |
bool | requiresAdvancedEffects () const |
Returns true if this rule or any of its children requires advanced composition effects to render. More... | |
QString | ruleKey () const |
Unique rule identifier (for identification of rule within labeling, used as provider ID) More... | |
QDomElement | save (QDomDocument &doc, const QgsReadWriteContext &context) const |
store labeling info to XML element More... | |
void | setActive (bool state) |
Sets if this rule is active. More... | |
void | setDescription (const QString &description) |
Set a human readable description for this rule. More... | |
void | setFilterExpression (const QString &filterExp) |
Set the expression used to check if a given feature shall be rendered with this rule. More... | |
void | setIsElse (bool iselse) |
Sets if this rule is an ELSE rule. More... | |
void | setMaximumScale (double scale) |
Sets the maximum map scale (i.e. More... | |
void | setMinimumScale (double scale) |
Sets the minimum map scale (i.e. More... | |
void | setRuleKey (const QString &key) |
Override the assigned rule key (should be used just internally by rule-based labeling) More... | |
void | setSettings (QgsPalLayerSettings *settings) |
Sets new settings (or nullptr ). Deletes old settings if any. More... | |
QgsPalLayerSettings * | settings () const |
Returns the labeling settings. More... | |
void | subProviderIds (QStringList &list) const |
append rule keys of descendants that contain valid settings (i.e. More... | |
Static Public Member Functions | |
static QgsRuleBasedLabeling::Rule * | create (const QDomElement &ruleElem, const QgsReadWriteContext &context, bool reuseId=true) |
Create a rule from an XML definition. More... | |
A child rule for QgsRuleBasedLabeling.
Definition at line 55 of file qgsrulebasedlabeling.h.
The result of registering a rule.
Enumerator | |
---|---|
Filtered | The rule does not apply. |
Inactive | The rule is inactive. |
Registered | Something was registered. |
Definition at line 68 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabeling::Rule::Rule | ( | QgsPalLayerSettings * | settings, |
double | maximumScale = 0 , |
||
double | minimumScale = 0 , |
||
const QString & | filterExp = QString() , |
||
const QString & | description = QString() , |
||
bool | elseRule = false |
||
) |
takes ownership of settings, settings may be nullptr
Definition at line 58 of file qgsrulebasedlabeling.cpp.
QgsRuleBasedLabeling::Rule::~Rule | ( | ) |
Definition at line 72 of file qgsrulebasedlabeling.cpp.
|
delete |
Rules cannot be copied.
bool QgsRuleBasedLabeling::Rule::accept | ( | QgsStyleEntityVisitorInterface * | visitor | ) | const |
Accepts the specified symbology visitor, causing it to visit all child rules associated with the rule.
Returns true
if the visitor should continue visiting other objects, or false
if visiting should be canceled.
Definition at line 140 of file qgsrulebasedlabeling.cpp.
|
inline |
Returns if this rule is active.
true
if the rule is active Definition at line 125 of file qgsrulebasedlabeling.h.
void QgsRuleBasedLabeling::Rule::appendChild | ( | QgsRuleBasedLabeling::Rule * | rule | ) |
add child rule, take ownership, sets this as parent
Definition at line 180 of file qgsrulebasedlabeling.cpp.
|
inline |
Returns all children rules of this rule.
Definition at line 202 of file qgsrulebasedlabeling.h.
|
inline |
Returns all children rules of this rule.
Definition at line 195 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::clone | ( | ) | const |
clone this rule, return new instance
Definition at line 231 of file qgsrulebasedlabeling.cpp.
|
static |
Create a rule from an XML definition.
ruleElem | The XML rule element |
context | reading context |
reuseId | set to true to create an exact copy of the original symbol or false to create a new rule with the same parameters as the original but a new unique ruleKey(). (Since QGIS 3.30) |
Definition at line 242 of file qgsrulebasedlabeling.cpp.
void QgsRuleBasedLabeling::Rule::createSubProviders | ( | QgsVectorLayer * | layer, |
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
QgsRuleBasedLabelProvider * | provider | ||
) |
add providers
Definition at line 314 of file qgsrulebasedlabeling.cpp.
|
inline |
Determines if scale based labeling is active.
true
if scale based labeling is active Definition at line 85 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabeling::RuleList QgsRuleBasedLabeling::Rule::descendants | ( | ) | const |
Returns all children, grand-children, grand-grand-children, grand-gra... you get it.
Definition at line 86 of file qgsrulebasedlabeling.cpp.
|
inline |
A human readable description for this rule.
Definition at line 118 of file qgsrulebasedlabeling.h.
|
inline |
A filter that will check if this rule applies.
Definition at line 111 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::findRuleByKey | ( | const QString & | key | ) |
Find a labeling rule thanks to its key.
key | The key of the rule to find |
nullptr
if not foundDefinition at line 217 of file qgsrulebasedlabeling.cpp.
const QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::findRuleByKey | ( | const QString & | key | ) | const |
Try to find a rule given its unique key.
Definition at line 201 of file qgsrulebasedlabeling.cpp.
void QgsRuleBasedLabeling::Rule::insertChild | ( | int | i, |
QgsRuleBasedLabeling::Rule * | rule | ||
) |
add child rule, take ownership, sets this as parent
Definition at line 187 of file qgsrulebasedlabeling.cpp.
|
inline |
Check if this rule is an ELSE rule.
true
if this rule is an else rule Definition at line 132 of file qgsrulebasedlabeling.h.
|
inline |
Returns the maximum map scale (i.e.
most "zoomed in" scale) at which the label rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no maximum scale visibility.
Definition at line 95 of file qgsrulebasedlabeling.h.
|
inline |
Returns the minimum map scale (i.e.
most "zoomed out" scale) at which the label rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no minimum scale visibility.
Definition at line 105 of file qgsrulebasedlabeling.h.
|
inline |
|
inline |
void QgsRuleBasedLabeling::Rule::prepare | ( | QgsRenderContext & | context, |
QSet< QString > & | attributeNames, | ||
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders | ||
) |
call prepare() on sub-providers and populate attributeNames
Definition at line 331 of file qgsrulebasedlabeling.cpp.
std::tuple< QgsRuleBasedLabeling::Rule::RegisterResult, QList< QgsLabelFeature * > > QgsRuleBasedLabeling::Rule::registerFeature | ( | const QgsFeature & | feature, |
QgsRenderContext & | context, | ||
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
const QgsGeometry & | obstacleGeometry = QgsGeometry() , |
||
const QgsSymbol * | symbol = nullptr |
||
) |
Register individual features.
Returns result of registration, together with a list of all label features which were created as a result of registering feature. Ownership of these label features is not transferred (it has already been assigned to the label provider).
Definition at line 356 of file qgsrulebasedlabeling.cpp.
void QgsRuleBasedLabeling::Rule::removeChildAt | ( | int | i | ) |
delete child rule
Definition at line 194 of file qgsrulebasedlabeling.cpp.
bool QgsRuleBasedLabeling::Rule::requiresAdvancedEffects | ( | ) | const |
Returns true
if this rule or any of its children requires advanced composition effects to render.
Definition at line 126 of file qgsrulebasedlabeling.cpp.
|
inline |
Unique rule identifier (for identification of rule within labeling, used as provider ID)
Definition at line 135 of file qgsrulebasedlabeling.h.
QDomElement QgsRuleBasedLabeling::Rule::save | ( | QDomDocument & | doc, |
const QgsReadWriteContext & | context | ||
) | const |
store labeling info to XML element
Definition at line 286 of file qgsrulebasedlabeling.cpp.
|
inline |
Sets if this rule is active.
state | Determines if the rule should be activated or deactivated |
Definition at line 176 of file qgsrulebasedlabeling.h.
|
inline |
Set a human readable description for this rule.
description | Description |
Definition at line 170 of file qgsrulebasedlabeling.h.
|
inline |
Set the expression used to check if a given feature shall be rendered with this rule.
filterExp | An expression |
Definition at line 163 of file qgsrulebasedlabeling.h.
|
inline |
Sets if this rule is an ELSE rule.
iselse | If true , this rule is an ELSE rule |
Definition at line 183 of file qgsrulebasedlabeling.h.
|
inline |
Sets the maximum map scale (i.e.
most "zoomed in" scale) at which the rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no maximum scale visibility.
Definition at line 156 of file qgsrulebasedlabeling.h.
|
inline |
Sets the minimum map scale (i.e.
most "zoomed out" scale) at which the label rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no minimum scale visibility.
Definition at line 147 of file qgsrulebasedlabeling.h.
|
inline |
Override the assigned rule key (should be used just internally by rule-based labeling)
Definition at line 186 of file qgsrulebasedlabeling.h.
void QgsRuleBasedLabeling::Rule::setSettings | ( | QgsPalLayerSettings * | settings | ) |
Sets new settings (or nullptr
). Deletes old settings if any.
Definition at line 78 of file qgsrulebasedlabeling.cpp.
|
inline |
Returns the labeling settings.
May return nullptr
.
Definition at line 78 of file qgsrulebasedlabeling.h.
void QgsRuleBasedLabeling::Rule::subProviderIds | ( | QStringList & | list | ) | const |
append rule keys of descendants that contain valid settings (i.e.
they will be sub-providers)
Definition at line 168 of file qgsrulebasedlabeling.cpp.