QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
QgsDiagramRenderer Class Referenceabstract

Evaluates and returns the diagram settings relating to a diagram for a specific feature. More...

#include <qgsdiagramrenderer.h>

Inheritance diagram for QgsDiagramRenderer:

Public Member Functions

 QgsDiagramRenderer ()=default
virtual ~QgsDiagramRenderer ()=default
bool attributeLegend () const
 Returns true if renderer will show legend items for diagram attributes.
virtual QgsDiagramRendererclone () const =0
 Returns new instance that is equivalent to this one.
QgsDiagramdiagram () const
virtual QList< QString > diagramAttributes () const =0
 Returns attribute indices needed for diagram rendering.
virtual QList< QgsDiagramSettingsdiagramSettings () const =0
 Returns list with all diagram settings in the renderer.
virtual QList< QgsLayerTreeModelLegendNode * > legendItems (QgsLayerTreeLayer *nodeLayer) const
 Returns list of legend nodes for the diagram.
virtual void readXml (const QDomElement &elem, const QgsReadWriteContext &context)=0
 Reads diagram state from a DOM element.
virtual QSet< QString > referencedFields (const QgsExpressionContext &context=QgsExpressionContext()) const
 Returns the set of any fields required for diagram rendering.
virtual void renderDiagram (const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties=QgsPropertyCollection()) const
 Renders the diagram for a specified feature at a specific position in the passed render context.
virtual QString rendererName () const =0
void setAttributeLegend (bool enabled)
 Sets whether the renderer will show legend items for diagram attributes.
void setDiagram (QgsDiagram *d)
virtual QSizeF sizeMapUnits (const QgsFeature &feature, const QgsRenderContext &c) const
 Returns size of the diagram for a feature in map units. Returns an invalid QSizeF in case of error.
virtual void writeXml (QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context) const =0
 Writes diagram state to a DOM element.

Protected Member Functions

 QgsDiagramRenderer (const QgsDiagramRenderer &other)
void _readXml (const QDomElement &elem, const QgsReadWriteContext &context)
 Reads internal QgsDiagramRenderer state from a DOM element.
void _writeXml (QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context) const
 Writes internal QgsDiagramRenderer diagram state to a DOM element.
void convertSizeToMapUnits (QSizeF &size, const QgsRenderContext &context) const
 Converts size from mm to map units.
virtual bool diagramSettings (const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s) const =0
 Returns diagram settings for a feature (or false if the diagram for the feature is not to be rendered).
virtual QSizeF diagramSize (const QgsFeature &feature, const QgsRenderContext &c) const =0
 Returns size of the diagram (in painter units) or an invalid size in case of error.
QgsDiagramRendereroperator= (const QgsDiagramRenderer &other)

Static Protected Member Functions

static int dpiPaintDevice (const QPainter *)
 Returns the paint device dpi (or -1 in case of error.

Protected Attributes

std::unique_ptr< QgsDiagrammDiagram
 Reference to the object that does the real diagram rendering.
bool mShowAttributeLegend = true
 Whether to show an attribute legend for the diagrams.

Friends

class QgsStackedDiagramRenderer

Detailed Description

Evaluates and returns the diagram settings relating to a diagram for a specific feature.

Definition at line 739 of file qgsdiagramrenderer.h.

Constructor & Destructor Documentation

◆ QgsDiagramRenderer() [1/2]

QgsDiagramRenderer::QgsDiagramRenderer ( )
default

◆ ~QgsDiagramRenderer()

virtual QgsDiagramRenderer::~QgsDiagramRenderer ( )
virtualdefault

◆ QgsDiagramRenderer() [2/2]

QgsDiagramRenderer::QgsDiagramRenderer ( const QgsDiagramRenderer & other)
protected

Definition at line 522 of file qgsdiagramrenderer.cpp.

Member Function Documentation

◆ _readXml()

void QgsDiagramRenderer::_readXml ( const QDomElement & elem,
const QgsReadWriteContext & context )
protected

Reads internal QgsDiagramRenderer state from a DOM element.

See also
_writeXml()

Definition at line 656 of file qgsdiagramrenderer.cpp.

◆ _writeXml()

void QgsDiagramRenderer::_writeXml ( QDomElement & rendererElem,
QDomDocument & doc,
const QgsReadWriteContext & context ) const
protected

Writes internal QgsDiagramRenderer diagram state to a DOM element.

See also
_readXml()

Definition at line 689 of file qgsdiagramrenderer.cpp.

◆ attributeLegend()

bool QgsDiagramRenderer::attributeLegend ( ) const
inline

Returns true if renderer will show legend items for diagram attributes.

See also
setAttributeLegend()

Definition at line 814 of file qgsdiagramrenderer.h.

◆ clone()

virtual QgsDiagramRenderer * QgsDiagramRenderer::clone ( ) const
pure virtual

Returns new instance that is equivalent to this one.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ convertSizeToMapUnits()

void QgsDiagramRenderer::convertSizeToMapUnits ( QSizeF & size,
const QgsRenderContext & context ) const
protected

Converts size from mm to map units.

Definition at line 631 of file qgsdiagramrenderer.cpp.

◆ diagram()

QgsDiagram * QgsDiagramRenderer::diagram ( ) const
inline

Definition at line 785 of file qgsdiagramrenderer.h.

◆ diagramAttributes()

virtual QList< QString > QgsDiagramRenderer::diagramAttributes ( ) const
pure virtual

Returns attribute indices needed for diagram rendering.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ diagramSettings() [1/2]

virtual QList< QgsDiagramSettings > QgsDiagramRenderer::diagramSettings ( ) const
pure virtual

Returns list with all diagram settings in the renderer.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ diagramSettings() [2/2]

virtual bool QgsDiagramRenderer::diagramSettings ( const QgsFeature & feature,
const QgsRenderContext & c,
QgsDiagramSettings & s ) const
protectedpure virtual

Returns diagram settings for a feature (or false if the diagram for the feature is not to be rendered).

Used internally within renderDiagram()

Parameters
featurethe feature
crender context
sout: diagram settings for the feature

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ diagramSize()

virtual QSizeF QgsDiagramRenderer::diagramSize ( const QgsFeature & feature,
const QgsRenderContext & c ) const
protectedpure virtual

Returns size of the diagram (in painter units) or an invalid size in case of error.

Parameters
featurethe feature
crender context

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ dpiPaintDevice()

int QgsDiagramRenderer::dpiPaintDevice ( const QPainter * painter)
staticprotected

Returns the paint device dpi (or -1 in case of error.

Definition at line 643 of file qgsdiagramrenderer.cpp.

◆ legendItems()

QList< QgsLayerTreeModelLegendNode * > QgsDiagramRenderer::legendItems ( QgsLayerTreeLayer * nodeLayer) const
virtual

Returns list of legend nodes for the diagram.

Note
caller is responsible for deletion of QgsLayerTreeModelLegendNodes

Reimplemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

Definition at line 1358 of file qgsdiagramrenderer.cpp.

◆ operator=()

QgsDiagramRenderer & QgsDiagramRenderer::operator= ( const QgsDiagramRenderer & other)
protected

Definition at line 528 of file qgsdiagramrenderer.cpp.

◆ readXml()

virtual void QgsDiagramRenderer::readXml ( const QDomElement & elem,
const QgsReadWriteContext & context )
pure virtual

Reads diagram state from a DOM element.

Subclasses should ensure that _readXml() is called by their readXml implementation to restore the general QgsDiagramRenderer settings.

See also
writeXml()

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ referencedFields()

QSet< QString > QgsDiagramRenderer::referencedFields ( const QgsExpressionContext & context = QgsExpressionContext()) const
virtual

Returns the set of any fields required for diagram rendering.

Parameters
contextexpression context the diagrams will be drawn using

Reimplemented in QgsLinearlyInterpolatedDiagramRenderer.

Definition at line 611 of file qgsdiagramrenderer.cpp.

◆ renderDiagram()

void QgsDiagramRenderer::renderDiagram ( const QgsFeature & feature,
QgsRenderContext & c,
QPointF pos,
const QgsPropertyCollection & properties = QgsPropertyCollection() ) const
virtual

Renders the diagram for a specified feature at a specific position in the passed render context.

Reimplemented in QgsStackedDiagramRenderer.

Definition at line 538 of file qgsdiagramrenderer.cpp.

◆ rendererName()

virtual QString QgsDiagramRenderer::rendererName ( ) const
pure virtual

◆ setAttributeLegend()

void QgsDiagramRenderer::setAttributeLegend ( bool enabled)
inline

Sets whether the renderer will show legend items for diagram attributes.

Parameters
enabledset to true to show diagram attribute legend
See also
attributeLegend()

Definition at line 821 of file qgsdiagramrenderer.h.

◆ setDiagram()

void QgsDiagramRenderer::setDiagram ( QgsDiagram * d)

Definition at line 514 of file qgsdiagramrenderer.cpp.

◆ sizeMapUnits()

QSizeF QgsDiagramRenderer::sizeMapUnits ( const QgsFeature & feature,
const QgsRenderContext & c ) const
virtual

Returns size of the diagram for a feature in map units. Returns an invalid QSizeF in case of error.

Reimplemented in QgsStackedDiagramRenderer.

Definition at line 573 of file qgsdiagramrenderer.cpp.

◆ writeXml()

virtual void QgsDiagramRenderer::writeXml ( QDomElement & layerElem,
QDomDocument & doc,
const QgsReadWriteContext & context ) const
pure virtual

Writes diagram state to a DOM element.

Subclasses should ensure that _writeXml() is called by their writeXml implementation to save the general QgsDiagramRenderer settings.

See also
readXml()

Implemented in QgsLinearlyInterpolatedDiagramRenderer, QgsSingleCategoryDiagramRenderer, and QgsStackedDiagramRenderer.

◆ QgsStackedDiagramRenderer

friend class QgsStackedDiagramRenderer
friend

Definition at line 868 of file qgsdiagramrenderer.h.

Member Data Documentation

◆ mDiagram

std::unique_ptr< QgsDiagram > QgsDiagramRenderer::mDiagram
protected

Reference to the object that does the real diagram rendering.

Definition at line 863 of file qgsdiagramrenderer.h.

◆ mShowAttributeLegend

bool QgsDiagramRenderer::mShowAttributeLegend = true
protected

Whether to show an attribute legend for the diagrams.

Definition at line 866 of file qgsdiagramrenderer.h.


The documentation for this class was generated from the following files: