QGIS API Documentation 3.39.0-Master (0c9320c8adc)
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
QgsStackedDiagramRenderer Class Reference

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

#include <qgsdiagramrenderer.h>

Inheritance diagram for QgsStackedDiagramRenderer:
Inheritance graph
[legend]

Public Member Functions

 QgsStackedDiagramRenderer ()=default
 
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.
 
void readXml (const QDomElement &elem, const QgsReadWriteContext &context) override
 Reads diagram state from a DOM element.
 
virtual 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.
 
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)
 
virtual 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 1000 of file qgsdiagramrenderer.h.

Constructor & Destructor Documentation

◆ QgsStackedDiagramRenderer()

QgsStackedDiagramRenderer::QgsStackedDiagramRenderer ( )
default

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 1074 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 1117 of file qgsdiagramrenderer.cpp.

◆ addRenderer()

void QgsStackedDiagramRenderer::addRenderer ( QgsDiagramRenderer renderer)

Adds a renderer to the stacked renderer object.

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

◆ clone()

QgsStackedDiagramRenderer * QgsStackedDiagramRenderer::clone ( ) const
overridevirtual

Returns new instance that is equivalent to this one.

Implements QgsDiagramRenderer.

Definition at line 867 of file qgsdiagramrenderer.cpp.

◆ diagramAttributes()

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

Returns attribute indices needed for diagram rendering.

Implements QgsDiagramRenderer.

Definition at line 1019 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 1012 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 997 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 1005 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 1024 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 1061 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 920 of file qgsdiagramrenderer.cpp.

◆ renderer()

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

Returns the renderer at the given index.

Parameters
indexindex of the desired renderer in the stacked renderer

Definition at line 1056 of file qgsdiagramrenderer.cpp.

◆ rendererName()

QString QgsStackedDiagramRenderer::rendererName ( ) const
inlineoverridevirtual

Implements QgsDiagramRenderer.

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

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

Definition at line 1035 of file qgsdiagramrenderer.cpp.

◆ setDiagramSettings()

void QgsStackedDiagramRenderer::setDiagramSettings ( const QgsDiagramSettings s)
inline

Definition at line 1022 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 872 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 1108 of file qgsdiagramrenderer.cpp.

Member Data Documentation

◆ DIAGRAM_RENDERER_NAME_STACKED

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

Definition at line 1003 of file qgsdiagramrenderer.h.


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