| 
    QGIS API Documentation
    2.18.21-Las Palmas (9fba24a)
    
   | 
 
#include <qgsrulebasedlabeling.h>
Public Types | |
| enum | RegisterResult { Filtered = 0, Inactive, Registered } | 
| The result of registering a rule.  More... | |
Public Member Functions | |
| Rule (QgsPalLayerSettings *settings, int scaleMinDenom=0, int scaleMaxDenom=0, const QString &filterExp=QString(), const QString &description=QString(), bool elseRule=false) | |
| takes ownership of settings  More... | |
| ~Rule () | |
| bool | active () const | 
| Returns if this rule is active.  More... | |
| void | appendChild (Rule *rule) | 
| add child rule, take ownership, sets this as parent  More... | |
| const RuleList & | children () const | 
| Return all children rules of this rule.  More... | |
| RuleList & | children () | 
| Return all children rules of this rule.  More... | |
| 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... | |
| 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 Rule * | findRuleByKey (const QString &key) const | 
| Try to find a rule given its unique key.  More... | |
| void | insertChild (int i, Rule *rule) | 
| add child rule, take ownership, sets this as parent  More... | |
| bool | isElse () const | 
| Check if this rule is an ELSE rule.  More... | |
| const Rule * | parent () const | 
| The parent rule.  More... | |
| Rule * | parent () | 
| The parent rule.  More... | |
| void | prepare (const QgsRenderContext &context, QStringList &attributeNames, RuleToProviderMap &subProviders) | 
| call prepare() on sub-providers and populate attributeNames  More... | |
| RegisterResult | registerFeature (QgsFeature &feature, QgsRenderContext &context, RuleToProviderMap &subProviders, QgsGeometry *obstacleGeometry=nullptr) | 
| register individual features  More... | |
| void | removeChildAt (int i) | 
| delete child rule  More... | |
| QString | ruleKey () const | 
| Unique rule identifier (for identification of rule within labeling, used as provider ID)  More... | |
| QDomElement | save (QDomDocument &doc) const | 
| store labeling info to XML element  More... | |
| int | scaleMaxDenom () const | 
| The maximum scale denominator at which this label rule should be applied.  More... | |
| int | scaleMinDenom () const | 
| The minimum scale at which this label rule should be applied.  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 | setRuleKey (const QString &key) | 
| Override the assigned rule key (should be used just internally by rule-based labeling)  More... | |
| void | setScaleMaxDenom (int scaleMaxDenom) | 
| Set the maximum denominator for which this rule shall apply.  More... | |
| void | setScaleMinDenom (int scaleMinDenom) | 
| Set the minimum denominator for which this rule shall apply.  More... | |
| void | setSettings (QgsPalLayerSettings *settings) | 
| set new settings (or NULL). Deletes old settings if any.  More... | |
| QgsPalLayerSettings * | settings () const | 
| Get the labeling settings.  More... | |
| void | subProviderIds (QStringList &list) const | 
| append rule keys of descendants that contain valid settings (i.e. they will be sub-providers)  More... | |
Static Public Member Functions | |
| static Rule * | create (const QDomElement &ruleElem) | 
| Create a rule from an XML definition.  More... | |
Protected Member Functions | |
| void | initFilter () | 
| Initialize filters.  More... | |
| bool | isFilterOK (QgsFeature &f, QgsRenderContext &context) const | 
| Check if a given feature shall be labelled by this rule.  More... | |
| bool | isScaleOK (double scale) const | 
| Check if this rule applies for a given scale.  More... | |
| void | updateElseRules () | 
| Check which child rules are else rules and update the internal list of else rules.  More... | |
Protected Attributes | |
| RuleList | mChildren | 
| QString | mDescription | 
| bool | mElseRule | 
| RuleList | mElseRules | 
| QgsExpression * | mFilter | 
| QString | mFilterExp | 
| bool | mIsActive | 
| Rule * | mParent | 
| QString | mRuleKey | 
| int | mScaleMaxDenom | 
| int | mScaleMinDenom | 
| QgsPalLayerSettings * | mSettings | 
Definition at line 53 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 61 of file qgsrulebasedlabeling.h.
| QgsRuleBasedLabeling::Rule::Rule | ( | QgsPalLayerSettings * | settings, | 
| int | scaleMinDenom = 0,  | 
        ||
| int | scaleMaxDenom = 0,  | 
        ||
| const QString & | filterExp = QString(),  | 
        ||
| const QString & | description = QString(),  | 
        ||
| bool | elseRule = false  | 
        ||
| ) | 
takes ownership of settings
Definition at line 62 of file qgsrulebasedlabeling.cpp.
| QgsRuleBasedLabeling::Rule::~Rule | ( | ) | 
Definition at line 77 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Returns if this rule is active.
Definition at line 115 of file qgsrulebasedlabeling.h.
| void QgsRuleBasedLabeling::Rule::appendChild | ( | QgsRuleBasedLabeling::Rule * | rule | ) | 
add child rule, take ownership, sets this as parent
Definition at line 134 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Return all children rules of this rule.
Definition at line 177 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Return all children rules of this rule.
Definition at line 183 of file qgsrulebasedlabeling.h.
| QgsRuleBasedLabeling::Rule * QgsRuleBasedLabeling::Rule::clone | ( | ) | const | 
clone this rule, return new instance
Definition at line 171 of file qgsrulebasedlabeling.cpp.
      
  | 
  static | 
Create a rule from an XML definition.
| ruleElem | The XML rule element | 
Definition at line 182 of file qgsrulebasedlabeling.cpp.
| void QgsRuleBasedLabeling::Rule::createSubProviders | ( | QgsVectorLayer * | layer, | 
| QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
| QgsRuleBasedLabelProvider * | provider | ||
| ) | 
add providers
Definition at line 250 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Determines if scale based labeling is active.
Definition at line 78 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Returns all children, grand-children, grand-grand-children, grand-gra...
you get it
Definition at line 190 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
A human readable description for this rule.
Definition at line 109 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
A filter that will check if this rule applies.
Definition at line 103 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 155 of file qgsrulebasedlabeling.cpp.
      
  | 
  protected | 
Initialize filters.
Automatically called by setFilterExpression.
Definition at line 94 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 141 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Check if this rule is an ELSE rule.
Definition at line 121 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Check if a given feature shall be labelled by this rule.
| f | The feature to test | 
| context | The context in which the rendering happens | 
Definition at line 339 of file qgsrulebasedlabeling.cpp.
      
  | 
  protected | 
Check if this rule applies for a given scale.
| scale | The scale to check. If set to 0, it will always return true. | 
Definition at line 349 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
      
  | 
  inline | 
| void QgsRuleBasedLabeling::Rule::prepare | ( | const QgsRenderContext & | context, | 
| QStringList & | attributeNames, | ||
| QgsRuleBasedLabeling::RuleToProviderMap & | subProviders | ||
| ) | 
call prepare() on sub-providers and populate attributeNames
Definition at line 267 of file qgsrulebasedlabeling.cpp.
| QgsRuleBasedLabeling::Rule::RegisterResult QgsRuleBasedLabeling::Rule::registerFeature | ( | QgsFeature & | feature, | 
| QgsRenderContext & | context, | ||
| QgsRuleBasedLabeling::RuleToProviderMap & | subProviders, | ||
| QgsGeometry * | obstacleGeometry = nullptr  | 
        ||
| ) | 
register individual features
Definition at line 292 of file qgsrulebasedlabeling.cpp.
| void QgsRuleBasedLabeling::Rule::removeChildAt | ( | int | i | ) | 
delete child rule
Definition at line 148 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Unique rule identifier (for identification of rule within labeling, used as provider ID)
Definition at line 124 of file qgsrulebasedlabeling.h.
| QDomElement QgsRuleBasedLabeling::Rule::save | ( | QDomDocument & | doc | ) | const | 
store labeling info to XML element
Definition at line 222 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
The maximum scale denominator at which this label rule should be applied.
E.g. Denominator 1000 is a scale of 1:1000, where a rule with maximum denominator of 900 will be applied while a rule with 2000 will not be applied.
Definition at line 98 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
The minimum scale at which this label rule should be applied.
E.g. Denominator 1000 is a scale of 1:1000, where a rule with minimum denominator of 900 will not be applied while a rule with 2000 will be applied.
Definition at line 88 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Sets if this rule is active.
| state | Determines if the rule should be activated or deactivated | 
Definition at line 159 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Set a human readable description for this rule.
| description | Description | 
Definition at line 154 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 148 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 165 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Override the assigned rule key (should be used just internally by rule-based labeling)
Definition at line 168 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Set the maximum denominator for which this rule shall apply.
E.g. 100'000 if it shall be evaluated between 1:1000 and 1:100'000 Set to 0 to disable the maximum check
| scaleMaxDenom | maximum scale denominator for this rule | 
Definition at line 142 of file qgsrulebasedlabeling.h.
      
  | 
  inline | 
Set the minimum denominator for which this rule shall apply.
E.g. 1000 if it shall be evaluated between 1:1000 and 1:100'000 Set to 0 to disable the minimum check
| scaleMinDenom | The minimum scale denominator for this rule | 
Definition at line 135 of file qgsrulebasedlabeling.h.
| void QgsRuleBasedLabeling::Rule::setSettings | ( | QgsPalLayerSettings * | settings | ) | 
set new settings (or NULL). Deletes old settings if any.
Definition at line 85 of file qgsrulebasedlabeling.cpp.
      
  | 
  inline | 
Get the labeling settings.
May return a null pointer.
Definition at line 71 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 122 of file qgsrulebasedlabeling.cpp.
      
  | 
  protected | 
Check which child rules are else rules and update the internal list of else rules.
Definition at line 112 of file qgsrulebasedlabeling.cpp.
      
  | 
  protected | 
Definition at line 279 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 277 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 278 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 280 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 286 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 277 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 281 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 274 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 283 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 276 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 276 of file qgsrulebasedlabeling.h.
      
  | 
  protected | 
Definition at line 275 of file qgsrulebasedlabeling.h.
 1.8.13