QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
#include <qgsrulebasedlabeling.h>
Public Types | |
enum | RegisterResult { Filtered = 0, Inactive, Registered } |
The result of registering a rule. More... | |
Public Member Functions | |
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 (const Rule &rh)=delete | |
Rules cannot be copied. More... | |
~Rule () | |
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... | |
const QgsRuleBasedLabeling::RuleList & | children () const |
Returns all children rules of this rule. More... | |
QgsRuleBasedLabeling::RuleList & | children () |
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... 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... | |
const QgsRuleBasedLabeling::Rule * | findRuleByKey (const QString &key) const |
Try to find a rule given its unique key. More... | |
QgsRuleBasedLabeling::Rule * | findRuleByKey (const QString &key) |
Find a labeling rule thanks to its 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... | |
const QgsRuleBasedLabeling::Rule * | parent () const |
The parent rule. More... | |
QgsRuleBasedLabeling::Rule * | parent () |
The parent rule. More... | |
void | prepare (const QgsRenderContext &context, QSet< QString > &attributeNames, RuleToProviderMap &subProviders) |
call prepare() on sub-providers and populate attributeNames More... | |
RegisterResult | registerFeature (const QgsFeature &feature, QgsRenderContext &context, RuleToProviderMap &subProviders, const QgsGeometry &obstacleGeometry=QgsGeometry()) |
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) |
Create a rule from an XML definition. More... | |
Definition at line 52 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 65 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 57 of file qgsrulebasedlabeling.cpp.
QgsRuleBasedLabeling::Rule::~Rule | ( | ) |
Definition at line 69 of file qgsrulebasedlabeling.cpp.
|
delete |
Rules cannot be copied.
|
inline |
Returns if this rule is active.
true
if the rule is active Definition at line 122 of file qgsrulebasedlabeling.h.
void QgsRuleBasedLabeling::Rule::appendChild | ( | QgsRuleBasedLabeling::Rule * | rule | ) |
add child rule, take ownership, sets this as parent
Definition at line 147 of file qgsrulebasedlabeling.cpp.
|
inline |
Returns all children rules of this rule.
Definition at line 192 of file qgsrulebasedlabeling.h.
|
inline |
Returns all children rules of this rule.
Definition at line 199 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::clone | ( | ) | const |
clone this rule, return new instance
Definition at line 198 of file qgsrulebasedlabeling.cpp.
|
static |
Create a rule from an XML definition.
ruleElem | The XML rule element |
context | reading context |
Definition at line 209 of file qgsrulebasedlabeling.cpp.
void QgsRuleBasedLabeling::Rule::createSubProviders | ( | QgsVectorLayer * | layer, |
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
QgsRuleBasedLabelProvider * | provider | ||
) |
add providers
Definition at line 277 of file qgsrulebasedlabeling.cpp.
|
inline |
Determines if scale based labeling is active.
true
if scale based labeling is active Definition at line 82 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 83 of file qgsrulebasedlabeling.cpp.
|
inline |
A human readable description for this rule.
Definition at line 115 of file qgsrulebasedlabeling.h.
|
inline |
A filter that will check if this rule applies.
Definition at line 108 of file qgsrulebasedlabeling.h.
const QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::findRuleByKey | ( | const QString & | key | ) | const |
Try to find a rule given its unique key.
Definition at line 168 of file qgsrulebasedlabeling.cpp.
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 184 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 154 of file qgsrulebasedlabeling.cpp.
|
inline |
Check if this rule is an ELSE rule.
true
if this rule is an else rule Definition at line 129 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 92 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 102 of file qgsrulebasedlabeling.h.
|
inline |
|
inline |
void QgsRuleBasedLabeling::Rule::prepare | ( | const QgsRenderContext & | context, |
QSet< QString > & | attributeNames, | ||
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders | ||
) |
call prepare() on sub-providers and populate attributeNames
Definition at line 294 of file qgsrulebasedlabeling.cpp.
QgsRuleBasedLabeling::Rule::RegisterResult QgsRuleBasedLabeling::Rule::registerFeature | ( | const QgsFeature & | feature, |
QgsRenderContext & | context, | ||
QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
const QgsGeometry & | obstacleGeometry = QgsGeometry() |
||
) |
register individual features
Definition at line 319 of file qgsrulebasedlabeling.cpp.
void QgsRuleBasedLabeling::Rule::removeChildAt | ( | int | i | ) |
delete child rule
Definition at line 161 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 121 of file qgsrulebasedlabeling.cpp.
|
inline |
Unique rule identifier (for identification of rule within labeling, used as provider ID)
Definition at line 132 of file qgsrulebasedlabeling.h.
QDomElement QgsRuleBasedLabeling::Rule::save | ( | QDomDocument & | doc, |
const QgsReadWriteContext & | context | ||
) | const |
store labeling info to XML element
Definition at line 249 of file qgsrulebasedlabeling.cpp.
|
inline |
Sets if this rule is active.
state | Determines if the rule should be activated or deactivated |
Definition at line 173 of file qgsrulebasedlabeling.h.
|
inline |
Set a human readable description for this rule.
description | Description |
Definition at line 167 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 160 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 180 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 153 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 144 of file qgsrulebasedlabeling.h.
|
inline |
Override the assigned rule key (should be used just internally by rule-based labeling)
Definition at line 183 of file qgsrulebasedlabeling.h.
void QgsRuleBasedLabeling::Rule::setSettings | ( | QgsPalLayerSettings * | settings | ) |
Sets new settings (or nullptr
). Deletes old settings if any.
Definition at line 75 of file qgsrulebasedlabeling.cpp.
|
inline |
Returns the labeling settings.
May return nullptr
.
Definition at line 75 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 135 of file qgsrulebasedlabeling.cpp.