QGIS API Documentation 3.99.0-Master (d270888f95f)
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#include <QString>
34
35using namespace Qt::StringLiterals;
36
38class QgsFeature;
40class QDomElement;
41class QgsMapToPixel;
43class QgsVectorLayer;
46class QgsPaintEffect;
48class QgsLineSymbol;
49
50namespace pal SIP_SKIP { class Layer; }
51
60
61class CORE_EXPORT QgsDiagramLayerSettings
62{
63 public:
64
65 //avoid inclusion of QgsPalLabeling
67 {
68 AroundPoint = 0, // Point / Polygon
69 OverPoint, // Point / Polygon
70 Line, // Line / Polygon
71 Curved, // Line
72 Horizontal, // Polygon
73 Free // Polygon
74 };
75
78 {
79 OnLine = 1,
80 AboveLine = 1 << 1,
81 BelowLine = 1 << 2,
83 };
85
86 // *INDENT-OFF*
87
88
92 {
93 BackgroundColor,
94 StrokeColor,
95 StrokeWidth,
96 PositionX,
97 PositionY,
98 Distance,
99 Priority,
100 ZIndex,
101 IsObstacle,
102 Show,
103 AlwaysShow,
104 StartAngle,
105 };
106 // *INDENT-ON*
107
117
121 static const QgsPropertiesDefinition &propertyDefinitions();
122
124
127
128 QgsDiagramLayerSettings &operator=( const QgsDiagramLayerSettings &rh );
130
132
137 Placement placement() const { return mPlacement; }
138
144 void setPlacement( Placement value ) { mPlacement = value; }
145
151 LinePlacementFlags linePlacementFlags() const { return mPlacementFlags; }
152
159 void setLinePlacementFlags( LinePlacementFlags flags ) { mPlacementFlags = flags; }
160
168 int priority() const { return mPriority; }
169
175 void setPriority( int value ) { mPriority = value; }
176
184 double zIndex() const { return mZIndex; }
185
192 void setZIndex( double index ) { mZIndex = index; }
193
198 bool isObstacle() const { return mObstacle; }
199
205 void setIsObstacle( bool isObstacle ) { mObstacle = isObstacle; }
206
211 double distance() const { return mDistance; }
212
218 void setDistance( double distance ) { mDistance = distance; }
219
224 QgsDiagramRenderer *renderer() { return mRenderer.get(); }
225
231 const QgsDiagramRenderer *renderer() const SIP_SKIP { return mRenderer.get(); }
232
238 void setRenderer( QgsDiagramRenderer *diagramRenderer SIP_TRANSFER );
239
246
252 void setCoordinateTransform( const QgsCoordinateTransform &transform );
253
258 bool showAllDiagrams() const { return mShowAll; }
259
266
271 void readXml( const QDomElement &elem );
272
277 void writeXml( QDomElement &layerElem, QDomDocument &doc ) const;
278
284 bool prepare( const QgsExpressionContext &context = QgsExpressionContext() ) const;
285
290 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
291
296 QgsPropertyCollection &dataDefinedProperties() { return mDataDefinedProperties; }
297
304 const QgsPropertyCollection &dataDefinedProperties() const SIP_SKIP { return mDataDefinedProperties; }
305
312 void setDataDefinedProperties( const QgsPropertyCollection &collection ) { mDataDefinedProperties = collection; }
313
314 private:
315
318
320 Placement mPlacement = AroundPoint;
321
323 LinePlacementFlags mPlacementFlags = OnLine;
324
330 int mPriority = 5;
331
333 double mZIndex = 0.0;
334
336 bool mObstacle = false;
337
339 double mDistance = 0.0;
340
342 std::unique_ptr<QgsDiagramRenderer> mRenderer;
343
345 bool mShowAll = true;
346
348 QgsPropertyCollection mDataDefinedProperties;
349
350 static void initPropertyDefinitions();
351
353 static QgsPropertiesDefinition sPropertyDefinitions;
354
355};
356
365
366class CORE_EXPORT QgsDiagramSettings
367{
368 public:
369
375
384
394
404
408
410
411 bool enabled = true;
412 QFont font;
413 QList< QColor > categoryColors;
414 QList< QString > categoryAttributes;
415 QList< QString > categoryLabels;
416 QSizeF size; //size
417
422
427
432
437
439 QColor penColor;
440 double penWidth = 0.0;
444 double barWidth = 5.0;
445
447 double opacity = 1.0;
448
449 bool scaleByArea = true;
450
454 double rotationOffset = 270;
455
457
464 double maximumScale = 0;
465
472 double minimumScale = 0;
473
475 double minimumSize = 0.0;
476
488 double spacing() const { return mSpacing; }
489
501 void setSpacing( double spacing ) { mSpacing = spacing; }
502
511 void setSpacingUnit( Qgis::RenderUnit unit ) { mSpacingUnit = unit; }
512
520 Qgis::RenderUnit spacingUnit() const { return mSpacingUnit; }
521
530 void setSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mSpacingMapUnitScale = scale; }
531
540 const QgsMapUnitScale &spacingMapUnitScale() const { return mSpacingMapUnitScale; }
541
553 double stackedDiagramSpacing() const { return mStackedDiagramSpacing; }
554
566 void setStackedDiagramSpacing( double spacing ) { mStackedDiagramSpacing = spacing; }
567
576 void setStackedDiagramSpacingUnit( Qgis::RenderUnit unit ) { mStackedDiagramSpacingUnit = unit; }
577
586 Qgis::RenderUnit stackedDiagramSpacingUnit() const { return mStackedDiagramSpacingUnit; }
587
596 void setStackedDiagramSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mStackedDiagramSpacingMapUnitScale = scale; }
597
606 const QgsMapUnitScale &stackedDiagramSpacingMapUnitScale() const { return mStackedDiagramSpacingMapUnitScale; }
607
614 Direction direction() const;
615
622 void setDirection( Direction direction );
623
625 void readXml( const QDomElement &elem, const QgsReadWriteContext &context = QgsReadWriteContext() );
627 void writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const;
628
633 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
634
643 QgsLineSymbol *axisLineSymbol() const;
644
655 void setAxisLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
656
665 bool showAxis() const;
666
675 void setShowAxis( bool showAxis );
676
684 QgsPaintEffect *paintEffect() const;
685
695 void setPaintEffect( QgsPaintEffect *effect SIP_TRANSFER );
696
697 private:
698
699 double mSpacing = 0;
701 QgsMapUnitScale mSpacingMapUnitScale;
702
703 double mStackedDiagramSpacing = 0;
704 Qgis::RenderUnit mStackedDiagramSpacingUnit = Qgis::RenderUnit::Millimeters;
705 QgsMapUnitScale mStackedDiagramSpacingMapUnitScale;
706
707 Direction mDirection = Counterclockwise;
708
709 bool mShowAxis = false;
710 std::unique_ptr< QgsLineSymbol > mAxisLineSymbol;
711 std::unique_ptr< QgsPaintEffect > mPaintEffect;
712
713};
714
734
735
741
742class CORE_EXPORT QgsDiagramRenderer
743{
744
745#ifdef SIP_RUN
747 if ( sipCpp->rendererName() == "SingleCategory"_L1 )
748 sipType = sipType_QgsSingleCategoryDiagramRenderer;
749 else if ( sipCpp->rendererName() == "LinearlyInterpolated"_L1 )
750 sipType = sipType_QgsLinearlyInterpolatedDiagramRenderer;
751 else if ( sipCpp->rendererName() == "Stacked"_L1 )
752 sipType = sipType_QgsStackedDiagramRenderer;
753 else
754 sipType = NULL;
755 SIP_END
756#endif
757
758 public:
759
761 virtual ~QgsDiagramRenderer() = default;
762
767
769 virtual QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const;
770
771 virtual QString rendererName() const = 0;
772
774 virtual QList<QString> diagramAttributes() const = 0;
775
780 virtual QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
781
785 virtual void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const;
786
788 QgsDiagram *diagram() const { return mDiagram.get(); }
789
791 virtual QList<QgsDiagramSettings> diagramSettings() const = 0;
792
798 virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) = 0;
799
805 virtual void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const = 0;
806
811 virtual QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
812
817 bool attributeLegend() const { return mShowAttributeLegend; }
818
824 void setAttributeLegend( bool enabled ) { mShowAttributeLegend = enabled; }
825
826 protected:
828 QgsDiagramRenderer &operator=( const QgsDiagramRenderer &other );
829
836 virtual bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const = 0;
837
843 virtual QSizeF diagramSize( const QgsFeature &feature, const QgsRenderContext &c ) const = 0;
844
846 void convertSizeToMapUnits( QSizeF &size, const QgsRenderContext &context ) const;
847
849 static int dpiPaintDevice( const QPainter * );
850
851 //read / write diagram
852
857 void _readXml( const QDomElement &elem, const QgsReadWriteContext &context );
858
863 void _writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
864
866 std::unique_ptr< QgsDiagram > mDiagram;
867
870
872};
873
879{
880 public:
882
884
886
888
889 QList<QString> diagramAttributes() const override { return mSettings.categoryAttributes; }
890
891 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
892
893 QList<QgsDiagramSettings> diagramSettings() const override;
894
895 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
896 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
897
898 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
899
900 protected:
901 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
902
903 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
904
905 private:
906 QgsDiagramSettings mSettings;
907};
908
915{
916 public:
918
922
924
926
928 QList<QgsDiagramSettings> diagramSettings() const override;
929
930 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
931
932 QList<QString> diagramAttributes() const override;
933
934 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const override;
935
937
938 void setLowerValue( double val ) { mInterpolationSettings.lowerValue = val; }
939 double lowerValue() const { return mInterpolationSettings.lowerValue; }
940
941 void setUpperValue( double val ) { mInterpolationSettings.upperValue = val; }
942 double upperValue() const { return mInterpolationSettings.upperValue; }
943
944 void setLowerSize( QSizeF s ) { mInterpolationSettings.lowerSize = s; }
945 QSizeF lowerSize() const { return mInterpolationSettings.lowerSize; }
946
947 void setUpperSize( QSizeF s ) { mInterpolationSettings.upperSize = s; }
948 QSizeF upperSize() const { return mInterpolationSettings.upperSize; }
949
954 QString classificationField() const { return mInterpolationSettings.classificationField; }
955
960 void setClassificationField( const QString &field ) { mInterpolationSettings.classificationField = field; }
961
962 QString classificationAttributeExpression() const { return mInterpolationSettings.classificationAttributeExpression; }
963 void setClassificationAttributeExpression( const QString &expression ) { mInterpolationSettings.classificationAttributeExpression = expression; }
964
965 bool classificationAttributeIsExpression() const { return mInterpolationSettings.classificationAttributeIsExpression; }
966 void setClassificationAttributeIsExpression( bool isExpression ) { mInterpolationSettings.classificationAttributeIsExpression = isExpression; }
967
968 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
969 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
970
971 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
972
976 void setDataDefinedSizeLegend( QgsDataDefinedSizeLegend *settings SIP_TRANSFER );
977
981 QgsDataDefinedSizeLegend *dataDefinedSizeLegend() const;
982
983 protected:
984 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
985
986 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
987
988 private:
989 QgsDiagramSettings mSettings;
990 QgsDiagramInterpolationSettings mInterpolationSettings;
991
993 std::unique_ptr<QgsDataDefinedSizeLegend> mDataDefinedSizeLegend;
994};
995
1006{
1007 public:
1009
1011 ~QgsStackedDiagramRenderer() override;
1012
1014
1016
1018
1020 QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const override;
1021
1027 void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const override;
1028
1030 QList<QgsDiagramSettings> diagramSettings() const override;
1031
1032 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
1033
1034 QList<QString> diagramAttributes() const override;
1035
1037
1038 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
1039 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
1040
1045 void _readXmlSubRenderers( const QDomElement &elem, const QgsReadWriteContext &context );
1046
1051 void _writeXmlSubRenderers( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
1052
1053 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
1054
1061 QList< QgsDiagramRenderer * > renderers( bool sortByDiagramMode = false ) const;
1062
1071 void addRenderer( QgsDiagramRenderer *renderer SIP_TRANSFER );
1072
1078 const QgsDiagramRenderer *renderer( const int index ) const;
1079
1081 int rendererCount() const;
1082
1083 protected:
1084 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
1085 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
1086
1087 private:
1088 QgsDiagramSettings mSettings;
1089 QList< QgsDiagramRenderer * > mDiagramRenderers;
1090};
1091
1092
1093#endif // QGSDIAGRAMRENDERER_H
RenderUnit
Rendering size units.
Definition qgis.h:5255
@ Millimeters
Millimeters.
Definition qgis.h:5256
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:44
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:60
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:63
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.