16 #ifndef QGSRULEBASEDRENDERERV2_H
17 #define QGSRULEBASEDRENDERERV2_H
47 Rule(
QgsSymbolV2* symbol,
int scaleMinDenom = 0,
int scaleMaxDenom = 0, QString filterExp = QString(),
48 QString label = QString(), QString description = QString() );
52 QStringList needsFields()
const;
54 bool isScaleOK(
double scale )
const;
57 bool dependsOnScale()
const {
return mScaleMinDenom != 0 || mScaleMaxDenom != 0; }
61 QString
label()
const {
return mLabel; }
67 void setLabel( QString label ) { mLabel = label; }
70 Rule& operator=(
const Rule& other );
78 QString mFilterExp,
mLabel, mDescription;
95 virtual void renderFeature(
QgsFeature& feature,
QgsRenderContext& context,
int layer = -1,
bool selected =
false,
bool drawVertexMarker =
false );
101 virtual QList<QString> usedAttributes();
108 virtual QDomElement save( QDomDocument& doc );
122 Rule& ruleAt(
int index );
124 void addRule(
const Rule& rule );
126 void insertRule(
int index,
const Rule& rule );
128 void updateRuleAt(
int index,
const Rule& rule );
130 void removeRuleAt(
int index );
132 void swapRules(
int index1,
int index2);
141 static QList<Rule> refineRuleScales(
Rule& initialRule, QList<int> scales );
156 #endif // QGSRULEBASEDRENDERERV2_H