QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
qgsdiagramrenderer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdiagramrenderer.h
3 ---------------------
4 begin : March 2011
5 copyright : (C) 2011 by Marco Hugentobler
6 email : marco dot hugentobler at sourcepole dot ch
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSDIAGRAMRENDERER_H
16#define QGSDIAGRAMRENDERER_H
17
18#include "qgis_core.h"
19#include "qgis_sip.h"
21#include "qgsdiagram.h"
23#include "qgsmapunitscale.h"
25#include "qgsreadwritecontext.h"
26
27#include <QColor>
28#include <QDomDocument>
29#include <QFont>
30#include <QList>
31#include <QPointF>
32#include <QSizeF>
33
35class QgsFeature;
37class QDomElement;
38class QgsMapToPixel;
40class QgsVectorLayer;
43class QgsPaintEffect;
45class QgsLineSymbol;
46
47namespace pal SIP_SKIP { class Layer; }
48
57
58class CORE_EXPORT QgsDiagramLayerSettings
59{
60 public:
61
62 //avoid inclusion of QgsPalLabeling
64 {
65 AroundPoint = 0, // Point / Polygon
66 OverPoint, // Point / Polygon
67 Line, // Line / Polygon
68 Curved, // Line
69 Horizontal, // Polygon
70 Free // Polygon
71 };
72
75 {
76 OnLine = 1,
77 AboveLine = 1 << 1,
78 BelowLine = 1 << 2,
80 };
82
83 // *INDENT-OFF*
84
85
89 {
90 BackgroundColor,
91 StrokeColor,
92 StrokeWidth,
93 PositionX,
94 PositionY,
95 Distance,
96 Priority,
97 ZIndex,
98 IsObstacle,
99 Show,
100 AlwaysShow,
101 StartAngle,
102 };
103 // *INDENT-ON*
104
114
118 static const QgsPropertiesDefinition &propertyDefinitions();
119
121
124
125 QgsDiagramLayerSettings &operator=( const QgsDiagramLayerSettings &rh );
127
129
134 Placement placement() const { return mPlacement; }
135
141 void setPlacement( Placement value ) { mPlacement = value; }
142
148 LinePlacementFlags linePlacementFlags() const { return mPlacementFlags; }
149
156 void setLinePlacementFlags( LinePlacementFlags flags ) { mPlacementFlags = flags; }
157
165 int priority() const { return mPriority; }
166
172 void setPriority( int value ) { mPriority = value; }
173
181 double zIndex() const { return mZIndex; }
182
189 void setZIndex( double index ) { mZIndex = index; }
190
195 bool isObstacle() const { return mObstacle; }
196
202 void setIsObstacle( bool isObstacle ) { mObstacle = isObstacle; }
203
208 double distance() const { return mDistance; }
209
215 void setDistance( double distance ) { mDistance = distance; }
216
221 QgsDiagramRenderer *renderer() { return mRenderer.get(); }
222
228 const QgsDiagramRenderer *renderer() const SIP_SKIP { return mRenderer.get(); }
229
235 void setRenderer( QgsDiagramRenderer *diagramRenderer SIP_TRANSFER );
236
243
249 void setCoordinateTransform( const QgsCoordinateTransform &transform );
250
255 bool showAllDiagrams() const { return mShowAll; }
256
263
268 void readXml( const QDomElement &elem );
269
274 void writeXml( QDomElement &layerElem, QDomDocument &doc ) const;
275
281 bool prepare( const QgsExpressionContext &context = QgsExpressionContext() ) const;
282
287 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
288
293 QgsPropertyCollection &dataDefinedProperties() { return mDataDefinedProperties; }
294
301 const QgsPropertyCollection &dataDefinedProperties() const SIP_SKIP { return mDataDefinedProperties; }
302
309 void setDataDefinedProperties( const QgsPropertyCollection &collection ) { mDataDefinedProperties = collection; }
310
311 private:
312
315
317 Placement mPlacement = AroundPoint;
318
320 LinePlacementFlags mPlacementFlags = OnLine;
321
327 int mPriority = 5;
328
330 double mZIndex = 0.0;
331
333 bool mObstacle = false;
334
336 double mDistance = 0.0;
337
339 std::unique_ptr<QgsDiagramRenderer> mRenderer;
340
342 bool mShowAll = true;
343
345 QgsPropertyCollection mDataDefinedProperties;
346
347 static void initPropertyDefinitions();
348
350 static QgsPropertiesDefinition sPropertyDefinitions;
351
352};
353
362
363class CORE_EXPORT QgsDiagramSettings
364{
365 public:
366
372
381
391
401
405
407
408 bool enabled = true;
409 QFont font;
410 QList< QColor > categoryColors;
411 QList< QString > categoryAttributes;
412 QList< QString > categoryLabels;
413 QSizeF size; //size
414
419
424
429
434
436 QColor penColor;
437 double penWidth = 0.0;
441 double barWidth = 5.0;
442
444 double opacity = 1.0;
445
446 bool scaleByArea = true;
447
451 double rotationOffset = 270;
452
454
461 double maximumScale = 0;
462
469 double minimumScale = 0;
470
472 double minimumSize = 0.0;
473
485 double spacing() const { return mSpacing; }
486
498 void setSpacing( double spacing ) { mSpacing = spacing; }
499
508 void setSpacingUnit( Qgis::RenderUnit unit ) { mSpacingUnit = unit; }
509
517 Qgis::RenderUnit spacingUnit() const { return mSpacingUnit; }
518
527 void setSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mSpacingMapUnitScale = scale; }
528
537 const QgsMapUnitScale &spacingMapUnitScale() const { return mSpacingMapUnitScale; }
538
550 double stackedDiagramSpacing() const { return mStackedDiagramSpacing; }
551
563 void setStackedDiagramSpacing( double spacing ) { mStackedDiagramSpacing = spacing; }
564
573 void setStackedDiagramSpacingUnit( Qgis::RenderUnit unit ) { mStackedDiagramSpacingUnit = unit; }
574
583 Qgis::RenderUnit stackedDiagramSpacingUnit() const { return mStackedDiagramSpacingUnit; }
584
593 void setStackedDiagramSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mStackedDiagramSpacingMapUnitScale = scale; }
594
603 const QgsMapUnitScale &stackedDiagramSpacingMapUnitScale() const { return mStackedDiagramSpacingMapUnitScale; }
604
611 Direction direction() const;
612
619 void setDirection( Direction direction );
620
622 void readXml( const QDomElement &elem, const QgsReadWriteContext &context = QgsReadWriteContext() );
624 void writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const;
625
630 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
631
640 QgsLineSymbol *axisLineSymbol() const;
641
652 void setAxisLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
653
662 bool showAxis() const;
663
672 void setShowAxis( bool showAxis );
673
681 QgsPaintEffect *paintEffect() const;
682
692 void setPaintEffect( QgsPaintEffect *effect SIP_TRANSFER );
693
694 private:
695
696 double mSpacing = 0;
698 QgsMapUnitScale mSpacingMapUnitScale;
699
700 double mStackedDiagramSpacing = 0;
701 Qgis::RenderUnit mStackedDiagramSpacingUnit = Qgis::RenderUnit::Millimeters;
702 QgsMapUnitScale mStackedDiagramSpacingMapUnitScale;
703
704 Direction mDirection = Counterclockwise;
705
706 bool mShowAxis = false;
707 std::unique_ptr< QgsLineSymbol > mAxisLineSymbol;
708 std::unique_ptr< QgsPaintEffect > mPaintEffect;
709
710};
711
731
732
738
739class CORE_EXPORT QgsDiagramRenderer
740{
741
742#ifdef SIP_RUN
744 if ( sipCpp->rendererName() == QLatin1String( "SingleCategory" ) )
745 sipType = sipType_QgsSingleCategoryDiagramRenderer;
746 else if ( sipCpp->rendererName() == QLatin1String( "LinearlyInterpolated" ) )
747 sipType = sipType_QgsLinearlyInterpolatedDiagramRenderer;
748 else if ( sipCpp->rendererName() == QLatin1String( "Stacked" ) )
749 sipType = sipType_QgsStackedDiagramRenderer;
750 else
751 sipType = NULL;
752 SIP_END
753#endif
754
755 public:
756
758 virtual ~QgsDiagramRenderer() = default;
759
764
766 virtual QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const;
767
768 virtual QString rendererName() const = 0;
769
771 virtual QList<QString> diagramAttributes() const = 0;
772
777 virtual QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
778
782 virtual void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const;
783
785 QgsDiagram *diagram() const { return mDiagram.get(); }
786
788 virtual QList<QgsDiagramSettings> diagramSettings() const = 0;
789
795 virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) = 0;
796
802 virtual void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const = 0;
803
808 virtual QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
809
814 bool attributeLegend() const { return mShowAttributeLegend; }
815
821 void setAttributeLegend( bool enabled ) { mShowAttributeLegend = enabled; }
822
823 protected:
825 QgsDiagramRenderer &operator=( const QgsDiagramRenderer &other );
826
833 virtual bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const = 0;
834
840 virtual QSizeF diagramSize( const QgsFeature &feature, const QgsRenderContext &c ) const = 0;
841
843 void convertSizeToMapUnits( QSizeF &size, const QgsRenderContext &context ) const;
844
846 static int dpiPaintDevice( const QPainter * );
847
848 //read / write diagram
849
854 void _readXml( const QDomElement &elem, const QgsReadWriteContext &context );
855
860 void _writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
861
863 std::unique_ptr< QgsDiagram > mDiagram;
864
867
869};
870
876{
877 public:
879
881
883
885
886 QList<QString> diagramAttributes() const override { return mSettings.categoryAttributes; }
887
888 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
889
890 QList<QgsDiagramSettings> diagramSettings() const override;
891
892 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
893 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
894
895 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
896
897 protected:
898 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
899
900 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
901
902 private:
903 QgsDiagramSettings mSettings;
904};
905
912{
913 public:
915
919
921
923
925 QList<QgsDiagramSettings> diagramSettings() const override;
926
927 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
928
929 QList<QString> diagramAttributes() const override;
930
931 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const override;
932
934
935 void setLowerValue( double val ) { mInterpolationSettings.lowerValue = val; }
936 double lowerValue() const { return mInterpolationSettings.lowerValue; }
937
938 void setUpperValue( double val ) { mInterpolationSettings.upperValue = val; }
939 double upperValue() const { return mInterpolationSettings.upperValue; }
940
941 void setLowerSize( QSizeF s ) { mInterpolationSettings.lowerSize = s; }
942 QSizeF lowerSize() const { return mInterpolationSettings.lowerSize; }
943
944 void setUpperSize( QSizeF s ) { mInterpolationSettings.upperSize = s; }
945 QSizeF upperSize() const { return mInterpolationSettings.upperSize; }
946
951 QString classificationField() const { return mInterpolationSettings.classificationField; }
952
957 void setClassificationField( const QString &field ) { mInterpolationSettings.classificationField = field; }
958
959 QString classificationAttributeExpression() const { return mInterpolationSettings.classificationAttributeExpression; }
960 void setClassificationAttributeExpression( const QString &expression ) { mInterpolationSettings.classificationAttributeExpression = expression; }
961
962 bool classificationAttributeIsExpression() const { return mInterpolationSettings.classificationAttributeIsExpression; }
963 void setClassificationAttributeIsExpression( bool isExpression ) { mInterpolationSettings.classificationAttributeIsExpression = isExpression; }
964
965 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
966 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
967
968 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
969
973 void setDataDefinedSizeLegend( QgsDataDefinedSizeLegend *settings SIP_TRANSFER );
974
978 QgsDataDefinedSizeLegend *dataDefinedSizeLegend() const;
979
980 protected:
981 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
982
983 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
984
985 private:
986 QgsDiagramSettings mSettings;
987 QgsDiagramInterpolationSettings mInterpolationSettings;
988
990 std::unique_ptr<QgsDataDefinedSizeLegend> mDataDefinedSizeLegend;
991};
992
1003{
1004 public:
1006
1008 ~QgsStackedDiagramRenderer() override;
1009
1011
1013
1015
1017 QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const override;
1018
1024 void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const override;
1025
1027 QList<QgsDiagramSettings> diagramSettings() const override;
1028
1029 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
1030
1031 QList<QString> diagramAttributes() const override;
1032
1034
1035 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
1036 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
1037
1042 void _readXmlSubRenderers( const QDomElement &elem, const QgsReadWriteContext &context );
1043
1048 void _writeXmlSubRenderers( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
1049
1050 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
1051
1058 QList< QgsDiagramRenderer * > renderers( bool sortByDiagramMode = false ) const;
1059
1068 void addRenderer( QgsDiagramRenderer *renderer SIP_TRANSFER );
1069
1075 const QgsDiagramRenderer *renderer( const int index ) const;
1076
1078 int rendererCount() const;
1079
1080 protected:
1081 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
1082 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
1083
1084 private:
1085 QgsDiagramSettings mSettings;
1086 QList< QgsDiagramRenderer * > mDiagramRenderers;
1087};
1088
1089
1090#endif // QGSDIAGRAMRENDERER_H
RenderUnit
Rendering size units.
Definition qgis.h:5183
@ Millimeters
Millimeters.
Definition qgis.h:5184
Handles coordinate transforms between two coordinate systems.
Object that keeps configuration of appearance of marker symbol's data-defined size in legend.
Additional diagram settings for interpolated size rendering.
QString classificationField
Name of the field for classification.
Stores the settings for rendering of all diagrams for a layer.
LinePlacementFlag
Line placement flags for controlling line based placements.
void setZIndex(double index)
Sets the diagram z-index.
Placement placement() const
Returns the diagram placement.
QgsCoordinateTransform coordinateTransform() const
Returns the coordinate transform associated with the layer, or an invalid transform if no transformat...
QFlags< LinePlacementFlag > LinePlacementFlags
bool showAllDiagrams() const
Returns whether the layer should show all diagrams, including overlapping diagrams.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the diagram's property collection, used for data defined overrides.
LinePlacementFlags linePlacementFlags() const
Returns the diagram placement flags.
Property
Data definable properties.
const QgsPropertyCollection & dataDefinedProperties() const
Returns a reference to the diagram's property collection, used for data defined overrides.
void setShowAllDiagrams(bool showAllDiagrams)
Sets whether the layer should show all diagrams, including overlapping diagrams.
void setDistance(double distance)
Sets the distance between the diagram and the feature.
void setPriority(int value)
Sets the diagram priority.
int priority() const
Returns the diagram priority.
const QgsDiagramRenderer * renderer() const
Returns the diagram renderer associated with the layer.
void setIsObstacle(bool isObstacle)
Sets whether the feature associated with a diagram acts as an obstacle for other labels or diagrams.
QgsDiagramRenderer * renderer()
Returns the diagram renderer associated with the layer.
bool isObstacle() const
Returns whether the feature associated with a diagram acts as an obstacle for other labels or diagram...
void setPlacement(Placement value)
Sets the diagram placement.
void setLinePlacementFlags(LinePlacementFlags flags)
Sets the the diagram placement flags.
void setDataDefinedProperties(const QgsPropertyCollection &collection)
Sets the diagram's property collection, used for data defined overrides.
double zIndex() const
Returns the diagram z-index.
double distance() const
Returns the distance between the diagram and the feature (in mm).
Evaluates and returns the diagram settings relating to a diagram for a specific feature.
virtual QString rendererName() const =0
virtual QList< QgsLayerTreeModelLegendNode * > legendItems(QgsLayerTreeLayer *nodeLayer) const
Returns list of legend nodes for the diagram.
QgsDiagram * diagram() const
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.
void _writeXml(QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context) const
Writes internal QgsDiagramRenderer diagram state to a DOM element.
void setAttributeLegend(bool enabled)
Sets whether the renderer will show legend items for diagram attributes.
virtual QSet< QString > referencedFields(const QgsExpressionContext &context=QgsExpressionContext()) const
Returns the set of any fields required for diagram rendering.
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 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 void writeXml(QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context) const =0
Writes diagram state to a DOM element.
void _readXml(const QDomElement &elem, const QgsReadWriteContext &context)
Reads internal QgsDiagramRenderer state from a DOM element.
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 QList< QString > diagramAttributes() const =0
Returns attribute indices needed for diagram rendering.
std::unique_ptr< QgsDiagram > mDiagram
Reference to the object that does the real diagram rendering.
void convertSizeToMapUnits(QSizeF &size, const QgsRenderContext &context) const
Converts size from mm to map units.
virtual ~QgsDiagramRenderer()=default
friend class QgsStackedDiagramRenderer
virtual QList< QgsDiagramSettings > diagramSettings() const =0
Returns list with all diagram settings in the renderer.
bool mShowAttributeLegend
Whether to show an attribute legend for the diagrams.
QgsDiagramRenderer()=default
virtual void readXml(const QDomElement &elem, const QgsReadWriteContext &context)=0
Reads diagram state from a DOM element.
bool attributeLegend() const
Returns true if renderer will show legend items for diagram attributes.
void setDiagram(QgsDiagram *d)
virtual QgsDiagramRenderer * clone() const =0
Returns new instance that is equivalent to this one.
static int dpiPaintDevice(const QPainter *)
Returns the paint device dpi (or -1 in case of error.
Stores the settings for rendering a single diagram.
void setStackedDiagramSpacing(double spacing)
Sets the spacing between subdiagrams in a stacked diagram.
StackedDiagramMode stackedDiagramMode
DiagramOrientation
Orientation of histogram.
LabelPlacementMethod labelPlacementMethod
void setStackedDiagramSpacingUnit(Qgis::RenderUnit unit)
Sets the unit for the spacing between subdiagrams in a stacked diagram.
double opacity
Opacity, from 0 (transparent) to 1.0 (opaque).
QgsDiagramSettings & operator=(const QgsDiagramSettings &other)
Qgis::RenderUnit sizeType
Diagram size unit.
void setSpacingUnit(Qgis::RenderUnit unit)
Sets the unit for the content spacing.
QList< QString > categoryAttributes
QList< QString > categoryLabels
Qgis::RenderUnit stackedDiagramSpacingUnit() const
Returns the units for the spacing between subdiagrams in a stacked diagram.
DiagramOrientation diagramOrientation
QgsMapUnitScale lineSizeScale
Line unit scale.
StackedDiagramMode
Orientation of the stacked diagrams.
double spacing() const
Returns the spacing between diagram contents.
QList< QColor > categoryColors
double rotationOffset
Rotation offset, in degrees clockwise from horizontal.
QgsMapUnitScale sizeScale
Diagram size unit scale.
double minimumScale
The minimum map scale (i.e.
const QgsMapUnitScale & stackedDiagramSpacingMapUnitScale() const
Returns the map unit scale for the spacing between subdiagrams in a stacked diagram.
void setSpacing(double spacing)
Sets the spacing between diagram contents.
double maximumScale
The maximum map scale (i.e.
void setSpacingMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the content spacing.
Qgis::RenderUnit lineSizeUnit
Line unit index.
const QgsMapUnitScale & spacingMapUnitScale() const
Returns the map unit scale for the content spacing.
double minimumSize
Scale diagrams smaller than mMinimumSize to mMinimumSize.
Direction
Angular directions.
@ Counterclockwise
Counter-clockwise orientation.
@ Clockwise
Clockwise orientation.
double stackedDiagramSpacing() const
Returns the spacing between subdiagrams in a stacked diagram.
void setStackedDiagramSpacingMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the spacing between subdiagrams in a stacked diagram.
Qgis::RenderUnit spacingUnit() const
Returns the units for the content spacing.
Base class for all diagram types.
Definition qgsdiagram.h:41
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:58
Layer tree node points to a map layer.
An abstract interface for legend items returned from QgsMapLayerLegend implementation.
A line symbol type, for rendering LineString and MultiLineString geometries.
void setDiagramSettings(const QgsDiagramSettings &s)
QString classificationField() const
Returns the field name used for interpolating the diagram size.
QList< QgsDiagramSettings > diagramSettings() const override
Returns list with all diagram settings in the renderer.
void setClassificationAttributeExpression(const QString &expression)
QgsLinearlyInterpolatedDiagramRenderer * clone() const override
Returns new instance that is equivalent to this one.
void setClassificationField(const QString &field)
Sets the field name used for interpolating the diagram size.
void setClassificationAttributeIsExpression(bool isExpression)
QgsLinearlyInterpolatedDiagramRenderer & operator=(const QgsLinearlyInterpolatedDiagramRenderer &other)
static const QString DIAGRAM_RENDERER_NAME_LINEARLY_INTERPOLATED
Perform transforms between map coordinates and device coordinates.
Struct for storing maximum and minimum scales for measurements in map units.
Base class for visual effects which can be applied to QPicture drawings.
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
A container for the context for various read/write operations on objects.
Contains information about the context of a rendering operation.
QgsSingleCategoryDiagramRenderer * clone() const override
Returns new instance that is equivalent to this one.
void setDiagramSettings(const QgsDiagramSettings &s)
static const QString DIAGRAM_RENDERER_NAME_SINGLE_CATEGORY
QString rendererName() const override
QList< QString > diagramAttributes() const override
Returns attribute indices needed for diagram rendering.
QgsStackedDiagramRenderer * clone() const override
Returns new instance that is equivalent to this one.
QList< QgsDiagramSettings > diagramSettings() const override
Returns list with all diagram settings in the renderer.
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,...
void setDiagramSettings(const QgsDiagramSettings &s)
static const QString DIAGRAM_RENDERER_NAME_STACKED
QgsStackedDiagramRenderer & operator=(const QgsStackedDiagramRenderer &other)
QString rendererName() const override
QgsStackedDiagramRenderer()=default
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.
Represents a vector layer which manages a vector based dataset.
A set of features which influence the labeling process.
Definition layer.h:64
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition qgis_sip.h:199
#define SIP_ENUM_BASETYPE(type)
Definition qgis_sip.h:275
#define SIP_SKIP
Definition qgis_sip.h:134
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition qgis_sip.h:268
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_FACTORY
Definition qgis_sip.h:84
#define SIP_END
Definition qgis_sip.h:216
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.