QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsRuleBasedRendererV2::Rule Class Reference

This class keeps data about a rules for rule-based renderer. More...

#include <qgsrulebasedrendererv2.h>

Collaboration diagram for QgsRuleBasedRendererV2::Rule:
Collaboration graph
[legend]

Public Member Functions

 Rule (QgsSymbolV2 *symbol, int scaleMinDenom=0, int scaleMaxDenom=0, QString filterExp=QString(), QString label=QString(), QString description=QString(), bool elseRule=false)
 Constructor takes ownership of the symbol. More...
 
 ~Rule ()
 
QString dump (int offset=0) const
 
QSet< QString > usedAttributes ()
 
QgsSymbolV2List symbols ()
 
QgsLegendSymbolList legendSymbolItems (double scaleDenominator=-1, QString rule="")
 
bool isFilterOK (QgsFeature &f) const
 
bool isScaleOK (double scale) const
 
QgsSymbolV2symbol ()
 
QString label () const
 
bool dependsOnScale () const
 
int scaleMinDenom () const
 
int scaleMaxDenom () const
 
QgsExpressionfilter () const
 
QString filterExpression () const
 
QString description () const
 
void setSymbol (QgsSymbolV2 *sym)
 set a new symbol (or NULL). Deletes old symbol. More...
 
void setLabel (QString label)
 
void setScaleMinDenom (int scaleMinDenom)
 
void setScaleMaxDenom (int scaleMaxDenom)
 
void setFilterExpression (QString filterExp)
 
void setDescription (QString description)
 
Ruleclone () const
 clone this rule, return new instance More...
 
void toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props)
 
QDomElement save (QDomDocument &doc, QgsSymbolV2Map &symbolMap)
 
bool startRender (QgsRenderContext &context, const QgsFields &fields)
 prepare the rule for rendering and its children (build active children array) More...
 
QSet< int > collectZLevels ()
 get all used z-levels from this rule and children More...
 
void setNormZLevels (const QMap< int, int > &zLevelsToNormLevels)
 assign normalized z-levels [0..N-1] for this rule's symbol for quick access during rendering More...
 
bool renderFeature (FeatureToRender &featToRender, QgsRenderContext &context, RenderQueue &renderQueue)
 
bool willRenderFeature (QgsFeature &feat)
 only tell whether a feature will be rendered without actually rendering it More...
 
QgsSymbolV2List symbolsForFeature (QgsFeature &feat)
 tell which symbols will be used to render the feature More...
 
RuleList rulesForFeature (QgsFeature &feat)
 tell which rules will be used to render the feature More...
 
void stopRender (QgsRenderContext &context)
 
RuleListchildren ()
 
RuleList descendants () const
 
Ruleparent ()
 
void appendChild (Rule *rule)
 add child rule, take ownership, sets this as parent More...
 
void insertChild (int i, Rule *rule)
 add child rule, take ownership, sets this as parent More...
 
void removeChild (Rule *rule)
 delete child rule More...
 
void removeChildAt (int i)
 delete child rule More...
 
void takeChild (Rule *rule)
 take child rule out, set parent as null More...
 
RuletakeChildAt (int i)
 take child rule out, set parent as null More...
 
void updateElseRules ()
 
void setIsElse (bool iselse)
 
bool isElse ()
 

Static Public Member Functions

static RulecreateFromSld (QDomElement &element, QGis::GeometryType geomType)
 
static Rulecreate (QDomElement &ruleElem, QgsSymbolV2Map &symbolMap)
 

Protected Member Functions

void initFilter ()
 

Protected Attributes

RulemParent
 
QgsSymbolV2mSymbol
 
int mScaleMinDenom
 
int mScaleMaxDenom
 
QString mFilterExp
 
QString mLabel
 
QString mDescription
 
bool mElseRule
 
RuleList mChildren
 
RuleList mElseRules
 
QgsExpressionmFilter
 
QList< int > mSymbolNormZLevels
 
RuleList mActiveChildren
 

Detailed Description

This class keeps data about a rules for rule-based renderer.

A rule consists of a symbol, filter expression and range of scales. If filter is empty, it matches all features. If scale range has both values zero, it matches all scales. If one of the min/max scale denominators is zero, there is no lower/upper bound for scales. A rule matches if both filter and scale range match.

Definition at line 84 of file qgsrulebasedrendererv2.h.

Constructor & Destructor Documentation

QgsRuleBasedRendererV2::Rule::Rule ( QgsSymbolV2 symbol,
int  scaleMinDenom = 0,
int  scaleMaxDenom = 0,
QString  filterExp = QString(),
QString  label = QString(),
QString  description = QString(),
bool  elseRule = false 
)

Constructor takes ownership of the symbol.

Definition at line 32 of file qgsrulebasedrendererv2.cpp.

References initFilter().

QgsRuleBasedRendererV2::Rule::~Rule ( )

Definition at line 41 of file qgsrulebasedrendererv2.cpp.

Member Function Documentation

void QgsRuleBasedRendererV2::Rule::appendChild ( Rule rule)
RuleList& QgsRuleBasedRendererV2::Rule::children ( )
inline
QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::clone ( ) const

clone this rule, return new instance

Definition at line 218 of file qgsrulebasedrendererv2.cpp.

References appendChild(), QgsSymbolV2::clone(), and clone().

Referenced by clone(), and QgsRuleBasedRendererV2::clone().

QSet< int > QgsRuleBasedRendererV2::Rule::collectZLevels ( )

get all used z-levels from this rule and children

Definition at line 376 of file qgsrulebasedrendererv2.cpp.

References collectZLevels().

Referenced by collectZLevels(), and QgsRuleBasedRendererV2::startRender().

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::create ( QDomElement &  ruleElem,
QgsSymbolV2Map symbolMap 
)
static
QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::createFromSld ( QDomElement &  element,
QGis::GeometryType  geomType 
)
static
bool QgsRuleBasedRendererV2::Rule::dependsOnScale ( ) const
inline
RuleList QgsRuleBasedRendererV2::Rule::descendants ( ) const
inline

Definition at line 151 of file qgsrulebasedrendererv2.h.

References children().

Referenced by QgsRuleBasedRendererV2Widget::countFeatures().

QString QgsRuleBasedRendererV2::Rule::description ( ) const
inline
QString QgsRuleBasedRendererV2::Rule::dump ( int  offset = 0) const
QgsExpression* QgsRuleBasedRendererV2::Rule::filter ( ) const
inline

Definition at line 105 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::filterExpression ( ) const
inline
void QgsRuleBasedRendererV2::Rule::initFilter ( )
protected

Definition at line 49 of file qgsrulebasedrendererv2.cpp.

Referenced by Rule().

void QgsRuleBasedRendererV2::Rule::insertChild ( int  i,
Rule rule 
)

add child rule, take ownership, sets this as parent

Definition at line 74 of file qgsrulebasedrendererv2.cpp.

References mParent.

Referenced by QgsRuleBasedRendererV2Model::insertRule().

bool QgsRuleBasedRendererV2::Rule::isElse ( )
inline
bool QgsRuleBasedRendererV2::Rule::isFilterOK ( QgsFeature f) const

Definition at line 196 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::isScaleOK ( double  scale) const

Definition at line 205 of file qgsrulebasedrendererv2.cpp.

Referenced by legendSymbolItems().

QString QgsRuleBasedRendererV2::Rule::label ( ) const
inline
QgsLegendSymbolList QgsRuleBasedRendererV2::Rule::legendSymbolItems ( double  scaleDenominator = -1,
QString  rule = "" 
)
Note
not available in python bindings

Definition at line 178 of file qgsrulebasedrendererv2.cpp.

References isScaleOK(), and legendSymbolItems().

Referenced by legendSymbolItems(), and QgsRuleBasedRendererV2::legendSymbolItems().

Rule* QgsRuleBasedRendererV2::Rule::parent ( )
inline

Definition at line 152 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2Model::parent().

void QgsRuleBasedRendererV2::Rule::removeChild ( Rule rule)

delete child rule

Definition at line 81 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::removeChildAt ( int  i)

delete child rule

Definition at line 88 of file qgsrulebasedrendererv2.cpp.

Referenced by QgsRuleBasedRendererV2Model::removeRows().

bool QgsRuleBasedRendererV2::Rule::renderFeature ( QgsRuleBasedRendererV2::FeatureToRender featToRender,
QgsRenderContext context,
QgsRuleBasedRendererV2::RenderQueue renderQueue 
)
QgsRuleBasedRendererV2::RuleList QgsRuleBasedRendererV2::Rule::rulesForFeature ( QgsFeature feat)

tell which rules will be used to render the feature

Definition at line 498 of file qgsrulebasedrendererv2.cpp.

References rulesForFeature().

Referenced by QgsRuleBasedRendererV2Widget::countFeatures(), and rulesForFeature().

QDomElement QgsRuleBasedRendererV2::Rule::save ( QDomDocument &  doc,
QgsSymbolV2Map symbolMap 
)
int QgsRuleBasedRendererV2::Rule::scaleMaxDenom ( ) const
inline
int QgsRuleBasedRendererV2::Rule::scaleMinDenom ( ) const
inline
void QgsRuleBasedRendererV2::Rule::setDescription ( QString  description)
inline

Definition at line 115 of file qgsrulebasedrendererv2.h.

Referenced by QgsRendererRulePropsDialog::accept().

void QgsRuleBasedRendererV2::Rule::setFilterExpression ( QString  filterExp)
inline
void QgsRuleBasedRendererV2::Rule::setIsElse ( bool  iselse)
inline

Definition at line 169 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setLabel ( QString  label)
inline
void QgsRuleBasedRendererV2::Rule::setNormZLevels ( const QMap< int, int > &  zLevelsToNormLevels)

assign normalized z-levels [0..N-1] for this rule's symbol for quick access during rendering

Note
not available in python bindings

Definition at line 400 of file qgsrulebasedrendererv2.cpp.

References setNormZLevels().

Referenced by setNormZLevels(), and QgsRuleBasedRendererV2::startRender().

void QgsRuleBasedRendererV2::Rule::setScaleMaxDenom ( int  scaleMaxDenom)
inline
void QgsRuleBasedRendererV2::Rule::setScaleMinDenom ( int  scaleMinDenom)
inline
void QgsRuleBasedRendererV2::Rule::setSymbol ( QgsSymbolV2 sym)

set a new symbol (or NULL). Deletes old symbol.

Definition at line 172 of file qgsrulebasedrendererv2.cpp.

Referenced by QgsRendererRulePropsDialog::accept().

bool QgsRuleBasedRendererV2::Rule::startRender ( QgsRenderContext context,
const QgsFields fields 
)

prepare the rule for rendering and its children (build active children array)

Definition at line 348 of file qgsrulebasedrendererv2.cpp.

References QgsRenderContext::rendererScale(), and startRender().

Referenced by startRender(), and QgsRuleBasedRendererV2::startRender().

void QgsRuleBasedRendererV2::Rule::stopRender ( QgsRenderContext context)

Definition at line 515 of file qgsrulebasedrendererv2.cpp.

References stopRender().

Referenced by stopRender(), and QgsRuleBasedRendererV2::stopRender().

QgsSymbolV2* QgsRuleBasedRendererV2::Rule::symbol ( )
inline
QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbols ( )

Definition at line 158 of file qgsrulebasedrendererv2.cpp.

References symbols().

Referenced by symbols(), and QgsRuleBasedRendererV2::symbols().

QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbolsForFeature ( QgsFeature feat)

tell which symbols will be used to render the feature

Note
added in 1.9

Definition at line 482 of file qgsrulebasedrendererv2.cpp.

References symbolsForFeature().

Referenced by symbolsForFeature(), and QgsRuleBasedRendererV2::symbolsForFeature().

void QgsRuleBasedRendererV2::Rule::takeChild ( Rule rule)

take child rule out, set parent as null

Definition at line 96 of file qgsrulebasedrendererv2.cpp.

References mParent.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::takeChildAt ( int  i)

take child rule out, set parent as null

Definition at line 103 of file qgsrulebasedrendererv2.cpp.

References mParent.

void QgsRuleBasedRendererV2::Rule::toSld ( QDomDocument &  doc,
QDomElement &  element,
QgsStringMap  props 
)
void QgsRuleBasedRendererV2::Rule::updateElseRules ( )

Definition at line 111 of file qgsrulebasedrendererv2.cpp.

References isElse().

QSet< QString > QgsRuleBasedRendererV2::Rule::usedAttributes ( )
bool QgsRuleBasedRendererV2::Rule::willRenderFeature ( QgsFeature feat)

only tell whether a feature will be rendered without actually rendering it

Note
added in 1.9

Definition at line 466 of file qgsrulebasedrendererv2.cpp.

References willRenderFeature().

Referenced by willRenderFeature(), and QgsRuleBasedRendererV2::willRenderFeature().

Member Data Documentation

RuleList QgsRuleBasedRendererV2::Rule::mActiveChildren
protected

Definition at line 187 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mChildren
protected

Definition at line 180 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mDescription
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

bool QgsRuleBasedRendererV2::Rule::mElseRule
protected

Definition at line 179 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mElseRules
protected

Definition at line 181 of file qgsrulebasedrendererv2.h.

QgsExpression* QgsRuleBasedRendererV2::Rule::mFilter
protected

Definition at line 184 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mFilterExp
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mLabel
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

Rule* QgsRuleBasedRendererV2::Rule::mParent
protected

Definition at line 175 of file qgsrulebasedrendererv2.h.

Referenced by appendChild(), insertChild(), takeChild(), and takeChildAt().

int QgsRuleBasedRendererV2::Rule::mScaleMaxDenom
protected

Definition at line 177 of file qgsrulebasedrendererv2.h.

int QgsRuleBasedRendererV2::Rule::mScaleMinDenom
protected

Definition at line 177 of file qgsrulebasedrendererv2.h.

QgsSymbolV2* QgsRuleBasedRendererV2::Rule::mSymbol
protected

Definition at line 176 of file qgsrulebasedrendererv2.h.

QList<int> QgsRuleBasedRendererV2::Rule::mSymbolNormZLevels
protected

Definition at line 186 of file qgsrulebasedrendererv2.h.


The documentation for this class was generated from the following files: