15 #ifndef QGSGRADUATEDSYMBOLRENDERER_H 16 #define QGSGRADUATEDSYMBOLRENDERER_H 18 #include "qgis_core.h" 49 double lowerValue()
const;
50 double upperValue()
const;
53 QString label()
const;
55 void setSymbol(
QgsSymbol *s SIP_TRANSFER );
56 void setLabel(
const QString &label );
57 void setLowerValue(
double lowerValue );
58 void setUpperValue(
double upperValue );
61 bool renderState()
const;
62 void setRenderState(
bool render );
75 void toSld( QDomDocument &doc, QDomElement &element,
QgsStringMap props,
bool firstRange =
false )
const;
78 double mLowerValue = 0, mUpperValue = 0;
104 QString
format()
const {
return mFormat; }
105 void setFormat(
const QString &format ) { mFormat = format; }
114 QString labelForRange(
double lower,
double upper )
const SIP_PYNAME( labelForLowerUpper );
116 QString formatNumber(
double value )
const;
118 void setFromDomElement( QDomElement &element );
119 void saveToDomElement( QDomElement &element );
127 bool mTrimTrailingZeroes =
false;
129 double mNumberScale = 1.0;
156 QString
dump()
const override;
168 bool updateRangeLabel(
int rangeIndex,
const QString &label );
169 bool updateRangeUpperValue(
int rangeIndex,
double value );
170 bool updateRangeLowerValue(
int rangeIndex,
double value );
172 bool updateRangeRenderState(
int rangeIndex,
bool render );
178 void addClass(
double lower,
double upper )
SIP_PYNAME( addClassLowerUpper );
188 void addBreak(
double breakValue,
bool updateSymbols =
true );
190 void deleteClass(
int idx );
191 void deleteAllClasses();
194 void moveClass(
int from,
int to );
201 bool rangesOverlap()
const;
208 bool rangesHaveGaps()
const;
210 void sortByValue( Qt::SortOrder order = Qt::AscendingOrder );
211 void sortByLabel( Qt::SortOrder order = Qt::AscendingOrder );
284 static void makeBreaksSymmetric( QList<double> &breaks,
double symmetryPoint,
bool astride );
295 static QList<double> calcEqualIntervalBreaks(
double minimum,
double maximum,
int classes,
bool useSymmetricMode,
double symmetryPoint,
bool astride );
307 void updateClasses(
QgsVectorLayer *vlayer,
Mode mode,
int nclasses,
bool useSymmetricMode =
false,
double symmetryPoint = 0.0,
bool astride =
false );
328 void calculateLabelPrecision(
bool updateRanges =
true );
346 const QString &attrName,
352 bool useSymmetricMode =
false,
353 double symmetryPoint = 0.0,
354 QStringList listForCboPrettyBreaks = QStringList(),
355 bool astride =
false );
379 void setSourceSymbol(
QgsSymbol *sym SIP_TRANSFER );
392 void setSourceColorRamp(
QgsColorRamp *ramp SIP_TRANSFER );
399 void updateColorRamp(
QgsColorRamp *ramp SIP_TRANSFER =
nullptr );
414 void setSymbolSizes(
double minSize,
double maxSize );
420 double minSymbolSize()
const;
426 double maxSymbolSize()
const;
491 bool mCounting =
false;
498 QgsSymbol *symbolForValue(
double value )
const;
503 QString legendKeyForValue(
double value )
const;
508 bool mUseSymmetricMode =
false;
509 double mSymmetryPoint = 0.0;
510 QStringList mListForCboPrettyBreaks = QStringList();
511 bool mAstride =
false;
530 #endif // QGSGRADUATEDSYMBOLRENDERER_H const QgsRendererRangeLabelFormat & labelFormat() const
Returns the label format used to generate default classification labels.
The class is used as a container of context for various read/write operations on other objects...
virtual QgsLegendSymbolList legendSymbolItems() const
Returns a list of symbology items for the legend.
std::unique_ptr< QgsSymbol > mSourceSymbol
QList< QgsLegendSymbolItem > QgsLegendSymbolList
Abstract base class for all rendered symbols.
QList< QgsRendererRange > QgsRangeList
virtual void toSld(QDomDocument &doc, QDomElement &element, const QgsStringMap &props=QgsStringMap()) const
used from subclasses to create SLD Rule elements following SLD v1.1 specs
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Features may be filtered, i.e. some features may not be rendered (categorized, rule based ...
void setSymmetryPoint(double symmetryPoint)
Set the pivot point.
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QString classAttribute() const
virtual QDomElement save(QDomDocument &doc, const QgsReadWriteContext &context)
store renderer info to XML element
Abstract base class for color ramps.
void setGraduatedMethod(GraduatedMethod method)
set the method used for graduation (either size or color)
Container of fields for a vector layer.
void setAstride(bool astride)
Set if we want a central class astride the pivot value.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
std::unique_ptr< QgsExpression > mExpression
QMap< QString, QString > QgsStringMap
virtual QgsSymbol * symbolForFeature(const QgsFeature &feature, QgsRenderContext &context) const =0
To be overridden.
void setUseSymmetricMode(bool useSymmetricMode)
Set if we want to classify symmetric around a given value.
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const =0
Returns a list of attributes required by this renderer.
QList< QgsSymbol * > QgsSymbolList
void setListForCboPrettyBreaks(const QStringList &listForCboPrettyBreaks)
Set the list of breaks used in the prettybreaks mode, which is needed to recover this list in saved c...
virtual QgsSymbol * originalSymbolForFeature(const QgsFeature &feature, QgsRenderContext &context) const
Returns symbol for feature.
bool astride() const
Returns if we want to have a central class astride the pivot value.
virtual bool legendSymbolItemChecked(const QString &key)
items of symbology items in legend is checked
double symmetryPoint() const
Returns the pivot value for symmetric classification.
virtual void checkLegendSymbolItem(const QString &key, bool state=true)
item in symbology was checked
virtual void setLegendSymbolItem(const QString &key, QgsSymbol *symbol)
Sets the symbol to be used for a legend symbol item.
Contains information about the context of a rendering operation.
QgsRendererRangeLabelFormat mLabelFormat
virtual QgsSymbolList symbols(QgsRenderContext &context) const
Returns list of symbols used by the renderer.
GraduatedMethod graduatedMethod() const
Returns the method used for graduation (either size or color)
virtual void startRender(QgsRenderContext &context, const QgsFields &fields)
Must be called when a new render cycle is started.
bool useSymmetricMode() const
Returns if we want to classify symmetric around a given value.
virtual void stopRender(QgsRenderContext &context)
Must be called when a render cycle has finished, to allow the renderer to clean up.
virtual QSet< QString > legendKeysForFeature(const QgsFeature &feature, QgsRenderContext &context) const
Returns legend keys matching a specified feature.
std::unique_ptr< QgsSymbol > mSymbol
QString legendClassificationAttribute() const override
If supported by the renderer, return classification attribute for the use in legend.
virtual bool legendSymbolItemsCheckable() const
items of symbology items in legend should be checkable
int ANALYSIS_EXPORT lower(int n, int i)
Lower function.
std::unique_ptr< QgsColorRamp > mSourceColorRamp
virtual bool filterNeedsGeometry() const
Returns true if this renderer requires the geometry to apply the filter.
void setClassAttribute(const QString &attr)
Represents a vector layer which manages a vector based data sets.
Object that keeps configuration of appearance of marker symbol's data-defined size in legend...
std::unique_ptr< QgsDataDefinedSizeLegend > mDataDefinedSizeLegend
QgsFeatureRenderer::Capabilities capabilities() override
Returns details about internals of this renderer.
const QgsRangeList & ranges() const
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
virtual QString dump() const
Returns debug information about this renderer.
QStringList listForCboPrettyBreaks() const
Returns the list of breaks used in the prettybreaks mode.