#include <qgsrulebasedrendererv2.h>
Public Member Functions | |
QgsRuleBasedRendererV2 (QgsSymbolV2 *defaultSymbol) | |
Constructor. Takes ownership of the defult 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 | |
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 |
Classes | |
class | Rule |
This class keeps data about a rules for rule-based renderer. More... |
Definition at line 31 of file qgsrulebasedrendererv2.h.
QgsRuleBasedRendererV2::QgsRuleBasedRendererV2 | ( | QgsSymbolV2 * | defaultSymbol | ) |
Constructor. Takes ownership of the defult symbol.
Definition at line 117 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), mDefaultSymbol, and mRules.
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::create | ( | QDomElement & | element | ) | [static] |
Definition at line 269 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolLayerV2Utils::clearSymbolMap(), QgsSymbolLayerV2Utils::loadSymbols(), mRules, QgsDebugMsg, and QgsRuleBasedRendererV2().
Referenced by QgsRendererV2Registry::QgsRendererV2Registry().
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 mCurrentSymbol.
void QgsRuleBasedRendererV2::renderFeature | ( | QgsFeature & | feature, | |
QgsRenderContext & | context, | |||
int | layer = -1 , |
|||
bool | selected = false , |
|||
bool | drawVertexMarker = false | |||
) | [virtual] |
Reimplemented from QgsFeatureRendererV2.
Definition at line 132 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::isFilterOK(), mCurrentFields, mCurrentRules, mCurrentSymbol, QgsFeatureRendererV2::renderFeature(), and QgsRuleBasedRendererV2::Rule::symbol().
void QgsRuleBasedRendererV2::startRender | ( | QgsRenderContext & | context, | |
const QgsVectorLayer * | vlayer | |||
) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 151 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 173 of file qgsrulebasedrendererv2.cpp.
References mCurrentFields, mCurrentRules, QgsSymbolV2::stopRender(), and QgsRuleBasedRendererV2::Rule::symbol().
QList< QString > QgsRuleBasedRendererV2::usedAttributes | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 185 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsRuleBasedRendererV2::Rule::needsFields().
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::clone | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 196 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), mDefaultSymbol, mRules, and QgsRuleBasedRendererV2().
QgsSymbolV2List QgsRuleBasedRendererV2::symbols | ( | ) | [virtual] |
for symbol levels
Implements QgsFeatureRendererV2.
Definition at line 204 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsRuleBasedRendererV2::Rule::symbol().
Referenced by save().
QDomElement QgsRuleBasedRendererV2::save | ( | QDomDocument & | doc | ) | [virtual] |
store renderer info to XML element
Reimplemented from QgsFeatureRendererV2.
Definition at line 216 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::filterExpression(), mDefaultSymbol, mRules, RENDERER_TAG_NAME, QgsSymbolLayerV2Utils::saveSymbols(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), QgsRuleBasedRendererV2::Rule::symbol(), and symbols().
QgsLegendSymbologyList QgsRuleBasedRendererV2::legendSymbologyItems | ( | QSize | iconSize | ) | [virtual] |
return a list of symbology items for the legend
Reimplemented from QgsFeatureRendererV2.
Definition at line 247 of file qgsrulebasedrendererv2.cpp.
References mRules, and QgsSymbolLayerV2Utils::symbolPreviewPixmap().
QgsLegendSymbolList QgsRuleBasedRendererV2::legendSymbolItems | ( | ) | [virtual] |
return a list of item text / symbol
Reimplemented from QgsFeatureRendererV2.
Definition at line 258 of file qgsrulebasedrendererv2.cpp.
References mRules.
int QgsRuleBasedRendererV2::ruleCount | ( | ) |
return the total number of rules
Definition at line 313 of file qgsrulebasedrendererv2.cpp.
References mRules.
QgsRuleBasedRendererV2::Rule & QgsRuleBasedRendererV2::ruleAt | ( | int | index | ) |
get reference to rule at index (valid indexes: 0...count-1)
Definition at line 318 of file qgsrulebasedrendererv2.cpp.
References mRules.
void QgsRuleBasedRendererV2::addRule | ( | const Rule & | rule | ) |
add rule to the end of the list of rules
Definition at line 323 of file qgsrulebasedrendererv2.cpp.
References mRules.
void QgsRuleBasedRendererV2::insertRule | ( | int | index, | |
const Rule & | rule | |||
) |
insert rule to a specific position of the list of rules
Definition at line 328 of file qgsrulebasedrendererv2.cpp.
References mRules.
void QgsRuleBasedRendererV2::updateRuleAt | ( | int | index, | |
const Rule & | rule | |||
) |
modify the rule at a specific position of the list of rules
Definition at line 333 of file qgsrulebasedrendererv2.cpp.
References mRules.
void QgsRuleBasedRendererV2::removeRuleAt | ( | int | index | ) |
remove the rule at the specified index
Definition at line 338 of file qgsrulebasedrendererv2.cpp.
References mRules.
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 346 of file qgsrulebasedrendererv2.cpp.
References QgsCategorizedSymbolRendererV2::categories(), QgsCategorizedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::filterExpression(), 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 362 of file qgsrulebasedrendererv2.cpp.
References QgsGraduatedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::filterExpression(), 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 378 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::filterExpression(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), and QgsRuleBasedRendererV2::Rule::symbol().
QList<Rule> QgsRuleBasedRendererV2::mRules [protected] |
the list of rules
Definition at line 138 of file qgsrulebasedrendererv2.h.
Referenced by addRule(), clone(), create(), insertRule(), legendSymbolItems(), legendSymbologyItems(), QgsRuleBasedRendererV2(), removeRuleAt(), ruleAt(), ruleCount(), save(), startRender(), symbols(), updateRuleAt(), and usedAttributes().
QgsSymbolV2* QgsRuleBasedRendererV2::mDefaultSymbol [protected] |
the default symbol, used for the first rule with no filter
Definition at line 140 of file qgsrulebasedrendererv2.h.
Referenced by clone(), QgsRuleBasedRendererV2(), and save().
QList<Rule*> QgsRuleBasedRendererV2::mCurrentRules [protected] |
Definition at line 143 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), startRender(), and stopRender().
QgsFieldMap QgsRuleBasedRendererV2::mCurrentFields [protected] |
Definition at line 144 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), startRender(), and stopRender().
QgsSymbolV2* QgsRuleBasedRendererV2::mCurrentSymbol [protected] |
Definition at line 145 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), and symbolForFeature().