33 #include <QDomDocument> 34 #include <QDomElement> 149 QString attrName = props[
"attribute" ];
171 mSymbol->toSld( doc, ruleElem, props );
180 mFormat(
" %1 - %2 " ),
182 mTrimTrailingZeroes( false ),
185 mReTrailingZeroes(
"[.,]?0*$" ),
186 mReNegativeZero(
"^\\-0(?:[.,]0*)?$" )
210 return !( *
this == other );
220 while ( precision < 0 )
241 valueStr = valueStr.
mid( 1 );
247 if ( valueStr ==
"-0" )
249 if ( valueStr !=
"0" )
261 return legend.
replace(
"%1", lowerStr ).
replace(
"%2", upperStr );
267 element.
attribute(
"prefix",
" " ) +
"%1" +
268 element.
attribute(
"separator",
" - " ) +
"%2" +
286 , mAttrName( attrName )
288 , mInvertedColorRamp( false )
290 , mGraduatedMethod( GraduatedColor )
338 return QString::null;
343 return QString::null;
367 markerSymbol->
setSize( sizeScale * static_cast<QgsMarkerSymbolV2*>( symbol )->size() );
373 lineSymbol->
setWidth( sizeScale * static_cast<QgsLineSymbolV2*>( symbol )->width() );
382 if ( mAttrNum < 0 || mAttrNum >= attrs.
count() )
396 QVariant value = valueForFeature( feature, context );
452 it2.
value()->stopRender( context );
484 return attributes.
toList();
489 if ( rangeIndex < 0 || rangeIndex >=
mRanges.
size() )
491 mRanges[rangeIndex].setSymbol( symbol );
497 if ( rangeIndex < 0 || rangeIndex >=
mRanges.
size() )
499 mRanges[rangeIndex].setLabel( label );
505 if ( rangeIndex < 0 || rangeIndex >=
mRanges.
size() )
516 if ( rangeIndex < 0 || rangeIndex >=
mRanges.
size() )
527 if ( rangeIndex < 0 || rangeIndex >=
mRanges.
size() )
529 mRanges[rangeIndex].setRenderState( value );
566 props[
"angle" ] =
mRotation->expression();
574 it->toSld( doc, element, catProps );
598 double step = ( maximum - minimum ) / classes;
601 double value = minimum;
603 for (
int i = 0; i < classes; i++ )
611 breaks[classes-1] = maximum;
635 int n = values.
count();
636 double Xq = n > 0 ? values[0] : 0.0;
639 for (
int i = 1; i < classes; i++ )
643 double q = i /
static_cast< double >( classes );
644 double a = q * ( n - 1 );
645 int aa =
static_cast< int >( a );
648 Xq = ( 1 - r ) * values[aa] + r * values[aa+1];
653 breaks.
append( values[ n-1 ] );
674 int n = values.
count();
675 double minimum = values[0];
676 double maximum = values[0];
678 for (
int i = 0; i < n; i++ )
681 minimum = qMin( values[i], minimum );
682 maximum = qMax( values[i], maximum );
684 mean = mean /
static_cast< double >( n );
687 for (
int i = 0; i < n; i++ )
689 sd = values[i] - mean;
692 stdDev = sqrt( stdDev / n );
695 for (
int i = 0; i < breaks.
count(); i++ )
697 labels.
append( breaks[i] );
698 breaks[i] = ( breaks[i] * stdDev ) + mean;
705 double minimum,
double maximum,
706 int maximumSize = 3000 )
726 if ( classes >= values.
size() )
734 if ( values.
size() > maximumSize )
740 sample.
resize( qMax( maximumSize, values.
size() / 10 ) );
745 sample[ 0 ] = minimum;
746 sample[ 1 ] = maximum;
747 for (
int i = 2; i < sample.
size(); i++ )
751 int j = floor( r / RAND_MAX * ( values.
size() - 1 ) );
752 sample[ i ] = values[ j ];
760 int n = sample.
size();
768 for (
int i = 0; i <= n; i++ )
770 matrixOne[i].
resize( classes + 1 );
771 matrixTwo[i].
resize( classes + 1 );
774 for (
int i = 1; i <= classes; i++ )
778 matrixTwo[0][i] = 0.0;
779 for (
int j = 2; j <= n; j++ )
785 for (
int l = 2; l <= n; l++ )
793 for (
int m = 1; m <= l; m++ )
797 double val = sample[ i3 - 1 ];
803 v = s2 - ( s1 * s1 ) / static_cast< double >( w );
807 for (
int j = 2; j <= classes; j++ )
809 if ( matrixTwo[l][j] >= v + matrixTwo[i4][j - 1] )
811 matrixOne[l][j] = i4;
812 matrixTwo[l][j] = v + matrixTwo[i4][j - 1];
822 breaks[classes-1] = sample[n-1];
824 for (
int j = classes, k = n; j >= 2; j-- )
826 int id = matrixOne[k][j] - 1;
827 breaks[j - 2] = sample[id];
828 k = matrixOne[k][j] - 1;
877 bool valuesLoaded =
false;
891 minimum = values.
first();
892 maximum = values.
last();
908 else if ( mode ==
Pretty )
925 else if ( mode ==
Jenks )
929 else if ( mode ==
StdDev )
939 double lower, upper = minimum;
958 else if ( i == labels.
count() - 1 )
980 if ( symbolsElem.
isNull() )
984 if ( rangesElem.
isNull() )
991 while ( !rangeElem.
isNull() )
993 if ( rangeElem.
tagName() ==
"range" )
999 bool render = rangeElem.
attribute(
"render",
"true" ) !=
"false";
1000 if ( symbolMap.
contains( symbolName ) )
1028 if ( !sourceSymbolElem.
isNull() )
1031 if ( sourceSymbolMap.
contains(
"0" ) )
1040 if ( !sourceColorRampElem.
isNull() && sourceColorRampElem.
attribute(
"name" ) ==
"[source]" )
1044 if ( !invertedColorRampElem.
isNull() )
1050 if ( !modeElem.
isNull() )
1053 if ( modeString ==
"equal" )
1055 else if ( modeString ==
"quantile" )
1057 else if ( modeString ==
"jenks" )
1059 else if ( modeString ==
"stddev" )
1061 else if ( modeString ==
"pretty" )
1079 if ( !sizeScaleElem.isNull() && !sizeScaleElem.attribute(
"field" ).isEmpty() )
1085 sizeScaleElem.attribute(
"field" ) );
1091 sizeScaleElem.attribute(
"field" ) );
1096 if ( ! labelFormatElem.isNull() )
1109 rendererElem.
setAttribute(
"type",
"graduatedSymbol" );
1164 modeString =
"equal";
1166 modeString =
"quantile";
1168 modeString =
"jenks";
1170 modeString =
"stddev";
1172 modeString =
"pretty";
1206 return rendererElem;
1214 for (
int i = 0; i < count; i++ )
1218 lst << qMakePair( range.
label(), pix );
1259 s->setSize( exp.size( v ) );
1275 QVariant value = valueForFeature( feature, context );
1291 Q_UNUSED( scaleDenominator );
1298 lst << qMakePair( range.
label(), range.
symbol() );
1325 double min = DBL_MAX;
1330 sz = static_cast< QgsMarkerSymbolV2 * >(
mRanges[i].symbol() )->size();
1332 sz = static_cast< QgsLineSymbolV2 * >(
mRanges[i].symbol() )->width();
1333 min = qMin( sz, min );
1340 double max = DBL_MIN;
1345 sz = static_cast< QgsMarkerSymbolV2 * >(
mRanges[i].symbol() )->size();
1347 sz = static_cast< QgsLineSymbolV2 * >(
mRanges[i].symbol() )->width();
1348 max = qMax( sz, max );
1359 ? minSize + i * ( maxSize - minSize ) / (
mRanges.
count() - 1 )
1360 : .5 * ( maxSize + minSize );
1362 static_cast< QgsMarkerSymbolV2 * >( symbol.data() )->setSize( size );
1364 static_cast< QgsLineSymbolV2 * >( symbol.data() )->setWidth( size );
1415 static_cast<QgsMarkerSymbolV2 *>( symbol.data() )->setSize(
1416 static_cast<QgsMarkerSymbolV2 *>( range.
symbol() )->size() );
1418 static_cast<QgsLineSymbolV2 *>( symbol.data() )->setWidth(
1419 static_cast<QgsLineSymbolV2 *>( range.
symbol() )->width() );
1479 return mRanges.
at( index ).renderState();
1541 if ( updateSymbols )
1586 double minClassRange = 0.0;
1592 if ( minClassRange == 0.0 || range < minClassRange )
1593 minClassRange = range;
1595 if ( minClassRange <= 0.0 )
1602 double nextDpMinRange = 0.0000000099;
1603 while ( ndp > 0 && nextDpMinRange < minClassRange )
1606 nextDpMinRange *= 10.0;
1632 if ( order == Qt::AscendingOrder )
1648 if ( it == sortedRanges.
constEnd() )
1651 if (( *it ).upperValue() < ( *it ).lowerValue() )
1654 double prevMax = ( *it ).upperValue();
1657 for ( ; it != sortedRanges.
constEnd(); ++it )
1659 if (( *it ).upperValue() < ( *it ).lowerValue() )
1662 if (( *it ).lowerValue() < prevMax )
1665 prevMax = ( *it ).upperValue();
1676 if ( it == sortedRanges.
constEnd() )
1679 double prevMax = ( *it ).upperValue();
1682 for ( ; it != sortedRanges.
constEnd(); ++it )
1687 prevMax = ( *it ).upperValue();
1704 if ( order == Qt::AscendingOrder )
1717 if ( renderer->
type() ==
"graduatedSymbol" )
1721 else if ( renderer->
type() ==
"pointDisplacement" )
1724 if ( pointDisplacementRenderer )
1727 else if ( renderer->
type() ==
"invertedPolygonRenderer" )
1730 if ( invertedPolygonRenderer )
1759 return "GraduatedColor";
1761 return "GraduatedSize";
static QDomElement saveSymbols(QgsSymbolV2Map &symbols, const QString &tagName, QDomDocument &doc)
Class for parsing and evaluation of expressions (formerly called "search strings").
QList< QgsRendererRangeV2 > QgsRangeList
static QgsSymbolV2Map loadSymbols(QDomElement &element)
#define RENDERER_TAG_NAME
void CORE_EXPORT save(QDomElement &elem) const
Serialize to XML.
virtual void toSld(QDomDocument &doc, QDomElement &element) const override
used from subclasses to create SLD Rule elements following SLD v1.1 specs
QString & append(QChar ch)
void setLowerValue(double lowerValue)
QgsGraduatedSymbolRendererV2(const QString &attrName=QString(), const QgsRangeList &ranges=QgsRangeList())
void setSymbolSizes(double minSize, double maxSize)
set varying symbol size for classes
bool hasParserError() const
Returns true if an error occurred when parsing the input expression.
void setInvertedColorRamp(bool inverted)
QStringList referencedColumns() const
Get list of columns referenced by the expression.
void addBreak(double breakValue, bool updateSymbols=true)
Add a breakpoint by splitting existing classes so that the specified value becomes a break between tw...
void setDataDefinedAngle(const QgsDataDefined &dd)
Set data defined angle for whole symbol (including all symbol layers).
A container class for data source field mapping or expression.
void setLabelFormat(const QgsRendererRangeV2LabelFormat &labelFormat, bool updateRanges=false)
Set the label format used to generate default classification labels.
static QList< double > prettyBreaks(double minimum, double maximum, int classes)
Computes a sequence of about 'classes' equally spaced round values which cover the range of values fr...
bool labelLessThan(const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2)
bool contains(const Key &key) const
static QgsGraduatedSymbolRendererV2 * convertFromRenderer(const QgsFeatureRendererV2 *renderer)
creates a QgsGraduatedSymbolRendererV2 from an existing renderer.
static QgsVectorColorRampV2 * loadColorRamp(QDomElement &element)
int localeAwareCompare(const QString &other) const
void updateClasses(QgsVectorLayer *vlayer, Mode mode, int nclasses)
Recalculate classes for a layer.
QgsFeatureRequest::OrderBy orderBy() const
Get the order in which features shall be processed by this renderer.
static QList< double > _calcStdDevBreaks(QList< double > values, int classes, QList< double > &labels)
virtual QString dump() const override
for debugging
QDomNode appendChild(const QDomNode &newChild)
QScopedPointer< QgsVectorColorRampV2 > mSourceColorRamp
QVariant maximumValue(int index)
Returns maximum value for an attribute column or invalid variant in case of error.
QSet< QString > usedAttributes() const
Return a list of attributes required to render this feature.
QString field() const
Get the field which this QgsDataDefined represents.
QString attribute(const QString &name, const QString &defValue) const
void updateSymbols(QgsSymbolV2 *sym)
Update all the symbols but leave breaks and colors.
void setDataDefinedSize(const QgsDataDefined &dd)
Set data defined size for whole symbol (including all symbol layers).
static QDomElement saveColorRamp(const QString &name, QgsVectorColorRampV2 *ramp, QDomDocument &doc)
int fieldNameIndex(const QString &fieldName) const
Look up field's index from name also looks up case-insensitive if there is no match otherwise...
double rendererScale() const
virtual QgsSymbolV2 * clone() const =0
Class storing parameters of a scale expression, which is a subclass of QgsExpression for expressions ...
bool orderByEnabled() const
Returns whether custom ordering will be applied before features are processed by this renderer...
QgsDataDefined dataDefinedSize() const
Returns data defined size for whole symbol (including all symbol layers).
static QgsSymbolV2::ScaleMethod decodeScaleMethod(const QString &str)
virtual bool legendSymbolItemChecked(const QString &key) override
item in symbology was checked
bool updateRangeRenderState(int rangeIndex, bool render)
virtual QgsSymbolV2 * symbolForFeature(QgsFeature &feature, QgsRenderContext &context) override
const T & at(int i) const
static bool isDefaultStack(QgsPaintEffect *effect)
Tests whether a paint effect matches the default effects stack.
void setSizeScaleField(const QString &fieldOrExpression)
QDomElement nextSiblingElement(const QString &tagName) const
double minSymbolSize() const
return the min symbol size when graduated by size
Container of fields for a vector layer.
void updateColorRamp(QgsVectorColorRampV2 *ramp=nullptr, bool inverted=false)
Update the color ramp used.
QString expressionString() const
Returns the expression string of this QgsDataDefined.
void move(int from, int to)
QVector< T > toVector() const
virtual ~QgsGraduatedSymbolRendererV2()
QHash< QgsSymbolV2 *, QgsSymbolV2 * > mTempSymbols
temporary symbols, used for data-defined rotation and scaling
void calculateLabelPrecision(bool updateRanges=true)
Reset the label decimal places to a numberbased on the minimum class interval.
QList< double > getDoubleValues(const QString &fieldOrExpression, bool &ok, bool selectedOnly=false, int *nullCount=nullptr)
Fetches all double values from a specified field name or expression.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QString & remove(int position, int n)
virtual QgsLegendSymbolList legendSymbolItems(double scaleDenominator=-1, const QString &rule=QString()) override
return a list of item text / symbol
void setScaleMethod(QgsSymbolV2::ScaleMethod scaleMethod)
double toDouble(bool *ok) const
QVariant minimumValue(int index)
Returns minimum value for an attribute column or invalid variant in case of error.
void setValue(const T &value) const
bool qgsDoubleNear(double a, double b, double epsilon=4 *DBL_EPSILON)
static const char * graduatedMethodStr(GraduatedMethod method)
QgsVectorColorRampV2 * sourceColorRamp()
Returns the source color ramp, from which each classes' color is derived.
QgsPaintEffect * mPaintEffect
void setWidth(double width)
void setRenderState(bool render)
Q_DECL_DEPRECATED QList< double > getDataValues(QgsVectorLayer *vlayer)
Evaluates the data expression and returns the list of values from the layer.
QScopedPointer< QgsSymbolV2 > mSymbol
double ANALYSIS_EXPORT max(double x, double y)
Returns the maximum of two doubles or the first argument if both are equal.
virtual void stopRender(QgsRenderContext &context) override
Needs to be called when a render cycle has finished to clean up.
GraduatedMethod mGraduatedMethod
double upperValue() const
QScopedPointer< QgsExpression > mExpression
void setColor(const QColor &color)
bool rangesHaveGaps() const
Tests whether classes assigned to the renderer have gaps between the ranges.
virtual QgsFeatureRendererV2 * clone() const =0
QString number(int n, int base)
int count(const T &value) const
static QgsGraduatedSymbolRendererV2 * createRenderer(QgsVectorLayer *vlayer, const QString &attrName, int classes, Mode mode, QgsSymbolV2 *symbol, QgsVectorColorRampV2 *ramp, bool inverted=false, const QgsRendererRangeV2LabelFormat &legendFormat=QgsRendererRangeV2LabelFormat())
void setGraduatedMethod(GraduatedMethod method)
set the method used for graduation (either size or color)
void append(const T &value)
QgsSymbolV2::ScaleMethod scaleMethod() const
const_iterator constEnd() const
void startRender(QgsRenderContext &context, const QgsFields *fields=nullptr)
void sortByLabel(Qt::SortOrder order=Qt::AscendingOrder)
static QList< double > _calcQuantileBreaks(QList< double > values, int classes)
QgsInvertedPolygonRenderer is a polygon-only feature renderer used to display features inverted...
QgsAttributes attributes() const
Returns the feature's attributes.
void setAttribute(const QString &name, const QString &value)
#define DEFAULT_SCALE_METHOD
void setOrderByEnabled(bool enabled)
Sets whether custom ordering should be applied before features are processed by this renderer...
virtual QgsVectorColorRampV2 * clone() const =0
void swap(QgsRendererRangeV2 &other)
int toInt(bool *ok, int base) const
QgsSymbolV2 * sourceSymbol()
Returns the renderer's source symbol, which is the base symbol used for the each classes' symbol befo...
Q_DECL_DEPRECATED QString rotationField() const override
return rotation field name (or empty string if not set or not supported by renderer) ...
QgsSymbolV2 * symbol() const
GraduatedMethod graduatedMethod() const
return the method used for graduation (either size or color)
void setAngle(double angle)
static QList< double > _calcJenksBreaks(QList< double > values, int classes, double minimum, double maximum, int maximumSize=3000)
void setSourceSymbol(QgsSymbolV2 *sym)
Sets the source symbol for the renderer, which is the base symbol used for the each classes' symbol b...
bool updateRangeLowerValue(int rangeIndex, double value)
void setSize(double size)
void toSld(QDomDocument &doc, QDomElement &element, QgsStringMap props) const
QgsRendererRangeV2LabelFormat mLabelFormat
QGis::GeometryType geometryType() const
Returns point, line or polygon.
virtual Q_DECL_DEPRECATED QgsSymbolV2List symbols()
For symbol levels.
void setUpperValue(double upperValue)
virtual QDomElement save(QDomDocument &doc) override
store renderer info to XML element
bool operator<(const QgsRendererRangeV2 &other) const
QString legendKeyForValue(double value) const
Returns the matching legend key for a value.
QgsSymbolV2 * symbolForValue(double value)
static void convertSymbolSizeScale(QgsSymbolV2 *symbol, QgsSymbolV2::ScaleMethod method, const QString &field)
bool labelGreaterThan(const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2)
QgsFeatureRendererV2 * embeddedRenderer() const
bool useExpression() const
Returns if the field or the expression part is active.
QDomText createTextNode(const QString &value)
bool valueLessThan(const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2)
const T value(const Key &key) const
virtual QgsGraduatedSymbolRendererV2 * clone() const override
const QgsRendererRangeV2LabelFormat & labelFormat() const
Return the label format used to generate default classification labels.
void sortByValue(Qt::SortOrder order=Qt::AscendingOrder)
QgsExpressionContext & expressionContext()
Gets the expression context.
void copyRendererData(QgsFeatureRendererV2 *destRenderer) const
Clones generic renderer data to another renderer.
A renderer that automatically displaces points with the same position.
virtual bool legendSymbolItemsCheckable() const override
items of symbology items in legend should be checkable
void setUsingSymbolLevels(bool usingSymbolLevels)
QString & replace(int position, int n, QChar after)
bool rangesOverlap() const
Tests whether classes assigned to the renderer have ranges which overlap.
static QList< double > _calcEqualIntervalBreaks(double minimum, double maximum, int classes)
const T & at(int i) const
virtual bool saveProperties(QDomDocument &doc, QDomElement &element) const
Saves the current state of the effect to a DOM element.
const_iterator constBegin() const
int ANALYSIS_EXPORT lower(int n, int i)
Lower function.
void moveClass(int from, int to)
Moves the category at index position from to index position to.
Contains information about the context of a rendering operation.
const QgsFeatureRendererV2 * embeddedRenderer() const
void setOrderBy(const QgsFeatureRequest::OrderBy &orderBy)
Define the order in which features shall be processed by this renderer.
int mAttrNum
attribute index (derived from attribute name in startRender)
QList< T > toList() const
QgsDataDefined dataDefinedAngle() const
Returns data defined angle for whole symbol (including all symbol layers).
void stopRender(QgsRenderContext &context)
QString mid(int position, int n) const
static bool createFunctionElement(QDomDocument &doc, QDomElement &element, const QString &function)
QSet< T > & unite(const QSet< T > &other)
static QgsSymbolV2 * defaultSymbol(QGis::GeometryType geomType)
return new default symbol for specified geometry type
static QgsExpression * fieldOrExpressionToExpression(const QString &fieldOrExpression)
Return a new valid expression instance for given field or expression string.
Q_DECL_DEPRECATED void setRotationField(const QString &fieldOrExpression) override
sets rotation field of renderer (if supported by the renderer)
void insert(int i, const T &value)
static QPixmap symbolPreviewPixmap(QgsSymbolV2 *symbol, QSize size, QgsRenderContext *customContext=nullptr)
double lowerValue() const
double maxSymbolSize() const
return the max symbol size when graduated by size
const QgsRangeList & ranges() const
virtual QgsLegendSymbolListV2 legendSymbolItemsV2() const
Return a list of symbology items for the legend.
QgsFeatureRequest::OrderBy mOrderBy
QString sizeScaleField() const
static QString encodeScaleMethod(QgsSymbolV2::ScaleMethod scaleMethod)
QDomElement firstChildElement(const QString &tagName) const
static QString fieldOrExpressionFromExpression(QgsExpression *expression)
Return a field name if the whole expression is just a name of the field .
bool usingSymbolLevels() const
void setScaleMethodToSymbol(QgsSymbolV2 *symbol, int scaleMethod)
virtual void setLegendSymbolItem(const QString &key, QgsSymbolV2 *symbol) override
Sets the symbol to be used for a legend symbol item.
void setSymbol(QgsSymbolV2 *s)
int count(const T &value) const
bool updateRangeSymbol(int rangeIndex, QgsSymbolV2 *symbol)
virtual void checkLegendSymbolItem(const QString &key, bool state=true) override
item in symbology was checked
void setSourceColorRamp(QgsVectorColorRampV2 *ramp)
Sets the source color ramp.
QScopedPointer< QgsSymbolV2 > mSourceSymbol
QList< T > toList() const
void setRenderHints(int hints)
static void clearSymbolMap(QgsSymbolV2Map &symbols)
bool updateRangeUpperValue(int rangeIndex, double value)
QScopedPointer< QgsExpression > mRotation
virtual QSet< QString > legendKeysForFeature(QgsFeature &feature, QgsRenderContext &context) override
Return legend keys matching a specified feature.
double toDouble(bool *ok) const
virtual QgsSymbolV2 * originalSymbolForFeature(QgsFeature &feature, QgsRenderContext &context) override
iterator insert(const Key &key, const T &value)
QgsSymbolV2::ScaleMethod mScaleMethod
static QgsFeatureRendererV2 * create(QDomElement &element)
create renderer from XML element
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize) override
return a list of symbology items for the legend
void setLabel(const QString &label)
bool hasDefaultValues() const
Returns whether the data defined container is set to all the default values, ie, disabled, with empty expression and no assigned field.
virtual QList< QString > usedAttributes() override
Returns a set of attributes required for this renderer.
double ANALYSIS_EXPORT min(double x, double y)
Returns the minimum of two doubles or the first argument if both are equal.
const_iterator constEnd() const
QScopedPointer< QgsExpression > mSizeScale
QDomElement createElement(const QString &tagName)
const_iterator constBegin() const
QgsRendererRangeV2 & operator=(QgsRendererRangeV2 range)
void insert(const T &value)
Represents a vector layer which manages a vector based data sets.
int fieldNameIndex(const QString &fieldName) const
Returns the index of a field name or -1 if the field does not exist.
void deleteClass(int idx)
bool exactMatch(const QString &str) const
The class stores information about one class/rule of a vector layer renderer in a unified way that ca...
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
void setScaleMethod(QgsSymbolV2::ScaleMethod scaleMethod)
QgsLegendSymbolListV2 legendSymbolItemsV2() const override
void addClass(QgsSymbolV2 *symbol)
bool valueGreaterThan(const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2)
const T value(const Key &key) const
virtual void startRender(QgsRenderContext &context, const QgsFields &fields) override
Needs to be called when a new render cycle is started.
static void convertSymbolRotation(QgsSymbolV2 *symbol, const QString &field)
bool updateRangeLabel(int rangeIndex, const QString &label)