QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
QgsStackedDiagramRenderer Class Reference

Renders diagrams using mixed diagram render types. More...

#include <qgsdiagramrenderer.h>

Inheritance diagram for QgsStackedDiagramRenderer:

Public Member Functions

 QgsStackedDiagramRenderer ()=default
 QgsStackedDiagramRenderer (const QgsStackedDiagramRenderer &other)
 ~QgsStackedDiagramRenderer () override
void _readXmlSubRenderers (const QDomElement &elem, const QgsReadWriteContext &context)
 Reads stacked renderers state from a DOM element.
void _writeXmlSubRenderers (QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context) const
 Writes stacked renderers state to a DOM element.
void addRenderer (QgsDiagramRenderer *renderer)
 Adds a renderer to the stacked renderer object.
QgsStackedDiagramRendererclone () const override
 Returns new instance that is equivalent to this one.
QList< QString > diagramAttributes () const override
 Returns attribute indices needed for diagram rendering.
QList< QgsDiagramSettingsdiagramSettings () const override
 Returns list with all diagram settings in the renderer.
QList< QgsLayerTreeModelLegendNode * > legendItems (QgsLayerTreeLayer *nodeLayer) const override
 Returns list of legend nodes for the diagram.
QgsStackedDiagramRendereroperator= (const QgsStackedDiagramRenderer &other)
void readXml (const QDomElement &elem, const QgsReadWriteContext &context) override
 Reads diagram state from a DOM element.
void renderDiagram (const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties=QgsPropertyCollection()) const override
 Renders the diagram for a specified feature at a specific position in the passed render context, taking all renderers and their own diagrams into account.
const QgsDiagramRendererrenderer (const int index) const
 Returns the renderer at the given index.
int rendererCount () const
 Returns the number of sub renderers in the stacked diagram renderer.
QString rendererName () const override
QList< QgsDiagramRenderer * > renderers (bool sortByDiagramMode=false) const
 Returns an ordered list with the renderers of the stacked renderer object.
void setDiagramSettings (const QgsDiagramSettings &s)
QSizeF sizeMapUnits (const QgsFeature &feature, const QgsRenderContext &c) const override
 Returns size of the diagram for a feature in map units. Returns an invalid QSizeF in case of error.
void writeXml (QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context) const override
 Writes diagram state to a DOM element.
Public Member Functions inherited from QgsDiagramRenderer
 QgsDiagramRenderer ()=default
virtual ~QgsDiagramRenderer ()=default
bool attributeLegend () const
 Returns true if renderer will show legend items for diagram attributes.
QgsDiagramdiagram () const
virtual QSet< QString > referencedFields (const QgsExpressionContext &context=QgsExpressionContext()) const
 Returns the set of any fields required for diagram rendering.
void setAttributeLegend (bool enabled)
 Sets whether the renderer will show legend items for diagram attributes.
void setDiagram (QgsDiagram *d)

Static Public Attributes

static const QString DIAGRAM_RENDERER_NAME_STACKED = QStringLiteral( "Stacked" )

Protected Member Functions

bool diagramSettings (const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s) const override
 Returns diagram settings for a feature (or false if the diagram for the feature is not to be rendered).
QSizeF diagramSize (const QgsFeature &, const QgsRenderContext &c) const override
 Returns size of the diagram (in painter units) or an invalid size in case of error.
Protected Member Functions inherited from QgsDiagramRenderer
 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.
QgsDiagramRendereroperator= (const QgsDiagramRenderer &other)

Additional Inherited Members

Static Protected Member Functions inherited from QgsDiagramRenderer
static int dpiPaintDevice (const QPainter *)
 Returns the paint device dpi (or -1 in case of error.
Protected Attributes inherited from QgsDiagramRenderer
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.

Detailed Description

Renders diagrams using mixed diagram render types.

The size of the rendered diagram is given by a combination of subrenderers.

Since
QGIS 3.40

Definition at line 1002 of file qgsdiagramrenderer.h.

Constructor & Destructor Documentation

◆ QgsStackedDiagramRenderer() [1/2]

QgsStackedDiagramRenderer::QgsStackedDiagramRenderer ( )
default

◆ ~QgsStackedDiagramRenderer()

QgsStackedDiagramRenderer::~QgsStackedDiagramRenderer ( )
override

Definition at line 940 of file qgsdiagramrenderer.cpp.

◆ QgsStackedDiagramRenderer() [2/2]

QgsStackedDiagramRenderer::QgsStackedDiagramRenderer ( const QgsStackedDiagramRenderer & other)

Definition at line 911 of file qgsdiagramrenderer.cpp.

Member Function Documentation

◆ _readXmlSubRenderers()

void QgsStackedDiagramRenderer::_readXmlSubRenderers ( const QDomElement & elem,
const QgsReadWriteContext & context )

Reads stacked renderers state from a DOM element.

See also
_writeXmlSubRenderers()

Definition at line 1157 of file qgsdiagramrenderer.cpp.

◆ _writeXmlSubRenderers()

void QgsStackedDiagramRenderer::_writeXmlSubRenderers ( QDomElement & rendererElem,
QDomDocument & doc,
const QgsReadWriteContext & context ) const

Writes stacked renderers state to a DOM element.

See also
_readXmlSubRenderers()

Definition at line 1203 of file qgsdiagramrenderer.cpp.

◆ addRenderer()

void QgsStackedDiagramRenderer::addRenderer ( QgsDiagramRenderer * renderer)

Adds a renderer to the stacked renderer object.

Takes ownership.

Renderers added first will render their diagrams first, i.e., more to the left (horizontal mode) or more to the top (vertical mode).

Parameters
rendererdiagram renderer to be added to the stacked renderer

Definition at line 1126 of file qgsdiagramrenderer.cpp.

◆ clone()

QgsStackedDiagramRenderer * QgsStackedDiagramRenderer::clone ( ) const
overridevirtual

Returns new instance that is equivalent to this one.

Implements QgsDiagramRenderer.

Definition at line 945 of file qgsdiagramrenderer.cpp.

◆ diagramAttributes()

QList< QString > QgsStackedDiagramRenderer::diagramAttributes ( ) const
overridevirtual

Returns attribute indices needed for diagram rendering.

Implements QgsDiagramRenderer.

Definition at line 1097 of file qgsdiagramrenderer.cpp.

◆ diagramSettings() [1/2]

QList< QgsDiagramSettings > QgsStackedDiagramRenderer::diagramSettings ( ) const
overridevirtual

Returns list with all diagram settings in the renderer.

Implements QgsDiagramRenderer.

Definition at line 1090 of file qgsdiagramrenderer.cpp.

◆ diagramSettings() [2/2]

bool QgsStackedDiagramRenderer::diagramSettings ( const QgsFeature & feature,
const QgsRenderContext & c,
QgsDiagramSettings & s ) const
overrideprotectedvirtual

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

Implements QgsDiagramRenderer.

Definition at line 1075 of file qgsdiagramrenderer.cpp.

◆ diagramSize()

QSizeF QgsStackedDiagramRenderer::diagramSize ( const QgsFeature & feature,
const QgsRenderContext & c ) const
overrideprotectedvirtual

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

Parameters
featurethe feature
crender context

Implements QgsDiagramRenderer.

Definition at line 1083 of file qgsdiagramrenderer.cpp.

◆ legendItems()

QList< QgsLayerTreeModelLegendNode * > QgsStackedDiagramRenderer::legendItems ( QgsLayerTreeLayer * nodeLayer) const
overridevirtual

Returns list of legend nodes for the diagram.

Note
caller is responsible for deletion of QgsLayerTreeModelLegendNodes

Reimplemented from QgsDiagramRenderer.

Definition at line 1102 of file qgsdiagramrenderer.cpp.

◆ operator=()

QgsStackedDiagramRenderer & QgsStackedDiagramRenderer::operator= ( const QgsStackedDiagramRenderer & other)

Definition at line 923 of file qgsdiagramrenderer.cpp.

◆ readXml()

void QgsStackedDiagramRenderer::readXml ( const QDomElement & elem,
const QgsReadWriteContext & context )
overridevirtual

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()

Implements QgsDiagramRenderer.

Definition at line 1144 of file qgsdiagramrenderer.cpp.

◆ renderDiagram()

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

Renders the diagram for a specified feature at a specific position in the passed render context, taking all renderers and their own diagrams into account.

Diagram rendering is delegated to renderer's diagram.

Reimplemented from QgsDiagramRenderer.

Definition at line 998 of file qgsdiagramrenderer.cpp.

◆ renderer()

const QgsDiagramRenderer * QgsStackedDiagramRenderer::renderer ( const int index) const

Returns the renderer at the given index.

Does not transfer ownership.

Parameters
indexindex of the desired renderer in the stacked renderer

Definition at line 1134 of file qgsdiagramrenderer.cpp.

◆ rendererCount()

int QgsStackedDiagramRenderer::rendererCount ( ) const

Returns the number of sub renderers in the stacked diagram renderer.

Definition at line 1139 of file qgsdiagramrenderer.cpp.

◆ rendererName()

QString QgsStackedDiagramRenderer::rendererName ( ) const
inlineoverridevirtual

Implements QgsDiagramRenderer.

Definition at line 1033 of file qgsdiagramrenderer.h.

◆ renderers()

QList< QgsDiagramRenderer * > QgsStackedDiagramRenderer::renderers ( bool sortByDiagramMode = false) const

Returns an ordered list with the renderers of the stacked renderer object.

Does not transfer ownership.

Parameters
sortByDiagramModeIf true, the list is returned backwards for vertical orientation.

Definition at line 1113 of file qgsdiagramrenderer.cpp.

◆ setDiagramSettings()

void QgsStackedDiagramRenderer::setDiagramSettings ( const QgsDiagramSettings & s)
inline

Definition at line 1029 of file qgsdiagramrenderer.h.

◆ sizeMapUnits()

QSizeF QgsStackedDiagramRenderer::sizeMapUnits ( const QgsFeature & feature,
const QgsRenderContext & c ) const
overridevirtual

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

Reimplemented from QgsDiagramRenderer.

Definition at line 950 of file qgsdiagramrenderer.cpp.

◆ writeXml()

void QgsStackedDiagramRenderer::writeXml ( QDomElement & layerElem,
QDomDocument & doc,
const QgsReadWriteContext & context ) const
overridevirtual

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()

Implements QgsDiagramRenderer.

Definition at line 1194 of file qgsdiagramrenderer.cpp.

Member Data Documentation

◆ DIAGRAM_RENDERER_NAME_STACKED

const QString QgsStackedDiagramRenderer::DIAGRAM_RENDERER_NAME_STACKED = QStringLiteral( "Stacked" )
static

Definition at line 1005 of file qgsdiagramrenderer.h.


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