Quantum GIS API Documentation
1.7.4
|
When drawing a vector layer with rule-based renderer, it goes through the rules and draws features with symbols from rules that match. More...
#include <qgsrulebasedrendererv2.h>
Classes | |
class | Rule |
This class keeps data about a rules for rule-based renderer. More... | |
Public Member Functions | |
QgsRuleBasedRendererV2 (QgsSymbolV2 *defaultSymbol) | |
Constructor. Takes ownership of the default symbol. | |
virtual QgsSymbolV2 * | symbolForFeature (QgsFeature &feature) |
return symbol for current feature. Should not be used individually: there could be more symbols for a feature | |
virtual void | renderFeature (QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false) |
virtual void | startRender (QgsRenderContext &context, const QgsVectorLayer *vlayer) |
virtual void | stopRender (QgsRenderContext &context) |
virtual QList< QString > | usedAttributes () |
virtual QgsFeatureRendererV2 * | clone () |
virtual QgsSymbolV2List | symbols () |
for symbol levels | |
virtual QDomElement | save (QDomDocument &doc) |
store renderer info to XML element | |
virtual QgsLegendSymbologyList | legendSymbologyItems (QSize iconSize) |
return a list of symbology items for the legend | |
virtual QgsLegendSymbolList | legendSymbolItems () |
return a list of item text / symbol | |
int | ruleCount () |
return the total number of rules | |
Rule & | ruleAt (int index) |
get reference to rule at index (valid indexes: 0...count-1) | |
void | addRule (const Rule &rule) |
add rule to the end of the list of rules | |
void | insertRule (int index, const Rule &rule) |
insert rule to a specific position of the list of rules | |
void | updateRuleAt (int index, const Rule &rule) |
modify the rule at a specific position of the list of rules | |
void | removeRuleAt (int index) |
remove the rule at the specified index | |
void | swapRules (int index1, int index2) |
swap the two rules specified by the indices | |
Static Public Member Functions | |
static QgsFeatureRendererV2 * | create (QDomElement &element) |
static QList< Rule > | refineRuleCategories (Rule &initialRule, QgsCategorizedSymbolRendererV2 *r) |
take a rule and create a list of new rules based on the categories from categorized symbol renderer | |
static QList< Rule > | refineRuleRanges (Rule &initialRule, QgsGraduatedSymbolRendererV2 *r) |
take a rule and create a list of new rules based on the ranges from graduated symbol renderer | |
static QList< Rule > | refineRuleScales (Rule &initialRule, QList< int > scales) |
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators | |
Protected Attributes | |
QList< Rule > | mRules |
the list of rules | |
QgsSymbolV2 * | mDefaultSymbol |
the default symbol, used for the first rule with no filter | |
QList< Rule * > | mCurrentRules |
QgsFieldMap | mCurrentFields |
QgsSymbolV2 * | mCurrentSymbol |
When drawing a vector layer with rule-based renderer, it goes through the rules and draws features with symbols from rules that match.
Definition at line 31 of file qgsrulebasedrendererv2.h.
QgsRuleBasedRendererV2::QgsRuleBasedRendererV2 | ( | QgsSymbolV2 * | defaultSymbol | ) |
Constructor. Takes ownership of the default symbol.
Definition at line 119 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), and mRules.
void QgsRuleBasedRendererV2::addRule | ( | const Rule & | rule | ) |
add rule to the end of the list of rules
Definition at line 346 of file qgsrulebasedrendererv2.cpp.
References mRules.
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::clone | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 209 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), mDefaultSymbol, mRules, QgsRuleBasedRendererV2(), QgsFeatureRendererV2::setUsingFirstRule(), QgsFeatureRendererV2::setUsingSymbolLevels(), QgsFeatureRendererV2::usingFirstRule(), and QgsFeatureRendererV2::usingSymbolLevels().
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::create | ( | QDomElement & | element | ) | [static] |
Definition at line 290 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolLayerV2Utils::clearSymbolMap(), QgsSymbolLayerV2Utils::loadSymbols(), mRules, QgsDebugMsg, and QgsRuleBasedRendererV2().
Referenced by QgsRendererV2Registry::QgsRendererV2Registry().
void QgsRuleBasedRendererV2::insertRule | ( | int | index, |
const Rule & | rule | ||
) |
insert rule to a specific position of the list of rules
Definition at line 351 of file qgsrulebasedrendererv2.cpp.
References mRules.
QgsLegendSymbolList QgsRuleBasedRendererV2::legendSymbolItems | ( | ) | [virtual] |
return a list of item text / symbol
Reimplemented from QgsFeatureRendererV2.
Definition at line 279 of file qgsrulebasedrendererv2.cpp.
References mRules.
QgsLegendSymbologyList QgsRuleBasedRendererV2::legendSymbologyItems | ( | QSize | iconSize | ) | [virtual] |
return a list of symbology items for the legend
Reimplemented from QgsFeatureRendererV2.
Definition at line 268 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsSymbolLayerV2Utils::symbolPreviewPixmap().
QList< QgsRuleBasedRendererV2::Rule > QgsRuleBasedRendererV2::refineRuleCategories | ( | QgsRuleBasedRendererV2::Rule & | initialRule, |
QgsCategorizedSymbolRendererV2 * | r | ||
) | [static] |
take a rule and create a list of new rules based on the categories from categorized symbol renderer
Definition at line 375 of file qgsrulebasedrendererv2.cpp.
References QgsCategorizedSymbolRendererV2::categories(), QgsCategorizedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::description(), QgsRuleBasedRendererV2::Rule::filterExpression(), QgsRuleBasedRendererV2::Rule::label(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), QgsRendererCategoryV2::symbol(), and QgsRendererCategoryV2::value().
QList< QgsRuleBasedRendererV2::Rule > QgsRuleBasedRendererV2::refineRuleRanges | ( | QgsRuleBasedRendererV2::Rule & | initialRule, |
QgsGraduatedSymbolRendererV2 * | r | ||
) | [static] |
take a rule and create a list of new rules based on the ranges from graduated symbol renderer
Definition at line 393 of file qgsrulebasedrendererv2.cpp.
References QgsGraduatedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::description(), QgsRuleBasedRendererV2::Rule::filterExpression(), QgsRuleBasedRendererV2::Rule::label(), QgsRendererRangeV2::lowerValue(), QgsGraduatedSymbolRendererV2::ranges(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), QgsRendererRangeV2::symbol(), and QgsRendererRangeV2::upperValue().
QList< QgsRuleBasedRendererV2::Rule > QgsRuleBasedRendererV2::refineRuleScales | ( | QgsRuleBasedRendererV2::Rule & | initialRule, |
QList< int > | scales | ||
) | [static] |
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators
Definition at line 411 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::description(), QgsRuleBasedRendererV2::Rule::filterExpression(), QgsRuleBasedRendererV2::Rule::label(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), and QgsRuleBasedRendererV2::Rule::symbol().
void QgsRuleBasedRendererV2::removeRuleAt | ( | int | index | ) |
remove the rule at the specified index
Definition at line 361 of file qgsrulebasedrendererv2.cpp.
References mRules.
void QgsRuleBasedRendererV2::renderFeature | ( | QgsFeature & | feature, |
QgsRenderContext & | context, | ||
int | layer = -1 , |
||
bool | selected = false , |
||
bool | drawVertexMarker = false |
||
) | [virtual] |
Reimplemented from QgsFeatureRendererV2.
Definition at line 145 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::isFilterOK(), mCurrentFields, mCurrentRules, mCurrentSymbol, and QgsRuleBasedRendererV2::Rule::symbol().
QgsRuleBasedRendererV2::Rule & QgsRuleBasedRendererV2::ruleAt | ( | int | index | ) |
get reference to rule at index (valid indexes: 0...count-1)
Definition at line 341 of file qgsrulebasedrendererv2.cpp.
References mRules.
return the total number of rules
Definition at line 336 of file qgsrulebasedrendererv2.cpp.
References mRules.
QDomElement QgsRuleBasedRendererV2::save | ( | QDomDocument & | doc | ) | [virtual] |
store renderer info to XML element
Reimplemented from QgsFeatureRendererV2.
Definition at line 233 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::description(), QgsRuleBasedRendererV2::Rule::filterExpression(), QgsRuleBasedRendererV2::Rule::label(), mDefaultSymbol, mRules, QgsFeatureRendererV2::mUsingFirstRule, QgsFeatureRendererV2::mUsingSymbolLevels, RENDERER_TAG_NAME, QgsSymbolLayerV2Utils::saveSymbols(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), QgsRuleBasedRendererV2::Rule::symbol(), and symbols().
void QgsRuleBasedRendererV2::startRender | ( | QgsRenderContext & | context, |
const QgsVectorLayer * | vlayer | ||
) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 164 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::isScaleOK(), mCurrentFields, mCurrentRules, mRules, QgsVectorLayer::pendingFields(), QgsRenderContext::rendererScale(), QgsSymbolV2::startRender(), and QgsRuleBasedRendererV2::Rule::symbol().
void QgsRuleBasedRendererV2::stopRender | ( | QgsRenderContext & | context | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 186 of file qgsrulebasedrendererv2.cpp.
References mCurrentFields, mCurrentRules, QgsSymbolV2::stopRender(), and QgsRuleBasedRendererV2::Rule::symbol().
void QgsRuleBasedRendererV2::swapRules | ( | int | index1, |
int | index2 | ||
) |
swap the two rules specified by the indices
Definition at line 366 of file qgsrulebasedrendererv2.cpp.
References mRules.
QgsSymbolV2 * QgsRuleBasedRendererV2::symbolForFeature | ( | QgsFeature & | feature | ) | [virtual] |
return symbol for current feature. Should not be used individually: there could be more symbols for a feature
Implements QgsFeatureRendererV2.
Definition at line 127 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::isFilterOK(), mCurrentFields, mCurrentRules, mCurrentSymbol, QgsRuleBasedRendererV2::Rule::symbol(), and QgsFeatureRendererV2::usingFirstRule().
QgsSymbolV2List QgsRuleBasedRendererV2::symbols | ( | ) | [virtual] |
for symbol levels
Implements QgsFeatureRendererV2.
Definition at line 221 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsRuleBasedRendererV2::Rule::symbol().
Referenced by save().
void QgsRuleBasedRendererV2::updateRuleAt | ( | int | index, |
const Rule & | rule | ||
) |
modify the rule at a specific position of the list of rules
Definition at line 356 of file qgsrulebasedrendererv2.cpp.
References mRules.
QList< QString > QgsRuleBasedRendererV2::usedAttributes | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 198 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsRuleBasedRendererV2::Rule::needsFields().
QgsFieldMap QgsRuleBasedRendererV2::mCurrentFields [protected] |
Definition at line 151 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), startRender(), stopRender(), and symbolForFeature().
QList<Rule*> QgsRuleBasedRendererV2::mCurrentRules [protected] |
Definition at line 150 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), startRender(), stopRender(), and symbolForFeature().
QgsSymbolV2* QgsRuleBasedRendererV2::mCurrentSymbol [protected] |
Definition at line 152 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), and symbolForFeature().
QgsSymbolV2* QgsRuleBasedRendererV2::mDefaultSymbol [protected] |
the default symbol, used for the first rule with no filter
Definition at line 147 of file qgsrulebasedrendererv2.h.
QList<Rule> QgsRuleBasedRendererV2::mRules [protected] |
the list of rules
Definition at line 145 of file qgsrulebasedrendererv2.h.
Referenced by addRule(), clone(), create(), insertRule(), legendSymbolItems(), legendSymbologyItems(), QgsRuleBasedRendererV2(), removeRuleAt(), ruleAt(), ruleCount(), save(), startRender(), swapRules(), symbols(), updateRuleAt(), and usedAttributes().