QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
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:
Inheritance graph
[legend]

Public Member Functions

 QgsDiagramRenderer ()=default
 Constructor for QgsDiagramRenderer. More...
 
virtual ~QgsDiagramRenderer ()=default
 
bool attributeLegend () const
 Returns true if renderer will show legend items for diagram attributes. More...
 
virtual QgsDiagramRendererclone () const =0
 Returns new instance that is equivalent to this one. More...
 
QgsDiagramdiagram () const
 
virtual QList< QString > diagramAttributes () const =0
 Returns attribute indices needed for diagram rendering. More...
 
virtual QList< QgsDiagramSettingsdiagramSettings () const =0
 Returns list with all diagram settings in the renderer. More...
 
virtual QList< QgsLayerTreeModelLegendNode * > legendItems (QgsLayerTreeLayer *nodeLayer) const
 Returns list of legend nodes for the diagram. More...
 
virtual void readXml (const QDomElement &elem, const QgsReadWriteContext &context)=0
 Reads diagram state from a DOM element. More...
 
virtual QSet< QString > referencedFields (const QgsExpressionContext &context=QgsExpressionContext()) const
 Returns the set of any fields required for diagram rendering. More...
 
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. More...
 
virtual QString rendererName () const =0
 
void setAttributeLegend (bool enabled)
 Sets whether the renderer will show legend items for diagram attributes. More...
 
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. More...
 
virtual void writeXml (QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context) const =0
 Writes diagram state to a DOM element. More...
 

Protected Member Functions

 QgsDiagramRenderer (const QgsDiagramRenderer &other)
 
void _readXml (const QDomElement &elem, const QgsReadWriteContext &context)
 Reads internal QgsDiagramRenderer state from a DOM element. More...
 
void _writeXml (QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context) const
 Writes internal QgsDiagramRenderer diagram state to a DOM element. More...
 
void convertSizeToMapUnits (QSizeF &size, const QgsRenderContext &context) const
 Converts size from mm to map units. More...
 
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). More...
 
virtual QSizeF diagramSize (const QgsFeature &features, const QgsRenderContext &c) const =0
 Returns size of the diagram (in painter units) or an invalid size in case of error. More...
 
QgsDiagramRendereroperator= (const QgsDiagramRenderer &other)
 

Static Protected Member Functions

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

Protected Attributes

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

Detailed Description

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

Definition at line 653 of file qgsdiagramrenderer.h.

Constructor & Destructor Documentation

◆ QgsDiagramRenderer() [1/2]

QgsDiagramRenderer::QgsDiagramRenderer ( )
default

Constructor for QgsDiagramRenderer.

◆ ~QgsDiagramRenderer()

virtual QgsDiagramRenderer::~QgsDiagramRenderer ( )
virtualdefault

◆ QgsDiagramRenderer() [2/2]

QgsDiagramRenderer::QgsDiagramRenderer ( const QgsDiagramRenderer other)
protected

Definition at line 450 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 561 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 590 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 729 of file qgsdiagramrenderer.h.

◆ clone()

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

Returns new instance that is equivalent to this one.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, and QgsSingleCategoryDiagramRenderer.

◆ convertSizeToMapUnits()

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

Converts size from mm to map units.

Definition at line 536 of file qgsdiagramrenderer.cpp.

◆ diagram()

QgsDiagram* QgsDiagramRenderer::diagram ( ) const
inline

Definition at line 700 of file qgsdiagramrenderer.h.

◆ diagramAttributes()

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

Returns attribute indices needed for diagram rendering.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, and QgsSingleCategoryDiagramRenderer.

◆ diagramSettings() [1/2]

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

Returns list with all diagram settings in the renderer.

Implemented in QgsLinearlyInterpolatedDiagramRenderer, and QgsSingleCategoryDiagramRenderer.

◆ 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, and QgsSingleCategoryDiagramRenderer.

◆ diagramSize()

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

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

Implemented in QgsLinearlyInterpolatedDiagramRenderer, and QgsSingleCategoryDiagramRenderer.

◆ dpiPaintDevice()

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

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

Definition at line 548 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, and QgsSingleCategoryDiagramRenderer.

Definition at line 939 of file qgsdiagramrenderer.cpp.

◆ operator=()

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

Definition at line 456 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, and QgsSingleCategoryDiagramRenderer.

◆ 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 516 of file qgsdiagramrenderer.cpp.

◆ renderDiagram()

void QgsDiagramRenderer::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.

Definition at line 463 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 736 of file qgsdiagramrenderer.h.

◆ setDiagram()

void QgsDiagramRenderer::setDiagram ( QgsDiagram d)

Definition at line 442 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.

Definition at line 498 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, and QgsSingleCategoryDiagramRenderer.

Member Data Documentation

◆ mDiagram

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

Reference to the object that does the real diagram rendering.

Definition at line 774 of file qgsdiagramrenderer.h.

◆ mShowAttributeLegend

bool QgsDiagramRenderer::mShowAttributeLegend = true
protected

Whether to show an attribute legend for the diagrams.

Definition at line 777 of file qgsdiagramrenderer.h.


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