QGIS API Documentation 4.1.0-Master (60fea48833c)
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
51{
52 class Layer;
53}
54
63
64class CORE_EXPORT QgsDiagramLayerSettings
65{
66 public:
67 //avoid inclusion of QgsPalLabeling
69 {
70 AroundPoint = 0, // Point / Polygon
71 OverPoint, // Point / Polygon
72 Line, // Line / Polygon
73 Curved, // Line
74 Horizontal, // Polygon
75 Free // Polygon
76 };
77
80 {
81 OnLine = 1,
82 AboveLine = 1 << 1,
83 BelowLine = 1 << 2,
85 };
87
88 // *INDENT-OFF*
89
90
94 {
95 BackgroundColor,
96 StrokeColor,
97 StrokeWidth,
98 PositionX,
99 PositionY,
100 Distance,
101 Priority,
102 ZIndex,
103 IsObstacle,
104 Show,
105 AlwaysShow,
106 StartAngle,
107 };
108 // *INDENT-ON*
109
119
123 static const QgsPropertiesDefinition &propertyDefinitions();
124
126
129
130 QgsDiagramLayerSettings &operator=( const QgsDiagramLayerSettings &rh );
132
134
139 Placement placement() const { return mPlacement; }
140
146 void setPlacement( Placement value ) { mPlacement = value; }
147
153 LinePlacementFlags linePlacementFlags() const { return mPlacementFlags; }
154
161 void setLinePlacementFlags( LinePlacementFlags flags ) { mPlacementFlags = flags; }
162
170 int priority() const { return mPriority; }
171
177 void setPriority( int value ) { mPriority = value; }
178
186 double zIndex() const { return mZIndex; }
187
194 void setZIndex( double index ) { mZIndex = index; }
195
200 bool isObstacle() const { return mObstacle; }
201
207 void setIsObstacle( bool isObstacle ) { mObstacle = isObstacle; }
208
213 double distance() const { return mDistance; }
214
220 void setDistance( double distance ) { mDistance = distance; }
221
226 QgsDiagramRenderer *renderer() { return mRenderer.get(); }
227
233 const QgsDiagramRenderer *renderer() const SIP_SKIP { return mRenderer.get(); }
234
240 void setRenderer( QgsDiagramRenderer *diagramRenderer SIP_TRANSFER );
241
248
254 void setCoordinateTransform( const QgsCoordinateTransform &transform );
255
260 bool showAllDiagrams() const { return mShowAll; }
261
268
273 void readXml( const QDomElement &elem );
274
279 void writeXml( QDomElement &layerElem, QDomDocument &doc ) const;
280
286 bool prepare( const QgsExpressionContext &context = QgsExpressionContext() ) const;
287
292 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
293
298 QgsPropertyCollection &dataDefinedProperties() { return mDataDefinedProperties; }
299
306 const QgsPropertyCollection &dataDefinedProperties() const SIP_SKIP { return mDataDefinedProperties; }
307
314 void setDataDefinedProperties( const QgsPropertyCollection &collection ) { mDataDefinedProperties = collection; }
315
316 private:
319
321 Placement mPlacement = AroundPoint;
322
324 LinePlacementFlags mPlacementFlags = OnLine;
325
331 int mPriority = 5;
332
334 double mZIndex = 0.0;
335
337 bool mObstacle = false;
338
340 double mDistance = 0.0;
341
343 std::unique_ptr<QgsDiagramRenderer> mRenderer;
344
346 bool mShowAll = true;
347
349 QgsPropertyCollection mDataDefinedProperties;
350
351 static void initPropertyDefinitions();
352
354 static QgsPropertiesDefinition sPropertyDefinitions;
355};
356
365
366class CORE_EXPORT QgsDiagramSettings
367{
368 public:
374
383
393
403
407
409
410 bool enabled = true;
411 QFont font;
412 QList< QColor > categoryColors;
413 QList< QString > categoryAttributes;
414 QList< QString > categoryLabels;
415 QSizeF size; //size
416
421
426
431
436
438 QColor penColor;
439 double penWidth = 0.0;
443 double barWidth = 5.0;
444
446 double opacity = 1.0;
447
448 bool scaleByArea = true;
449
453 double rotationOffset = 270;
454
456
463 double maximumScale = 0;
464
471 double minimumScale = 0;
472
474 double minimumSize = 0.0;
475
487 double spacing() const { return mSpacing; }
488
500 void setSpacing( double spacing ) { mSpacing = spacing; }
501
510 void setSpacingUnit( Qgis::RenderUnit unit ) { mSpacingUnit = unit; }
511
519 Qgis::RenderUnit spacingUnit() const { return mSpacingUnit; }
520
529 void setSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mSpacingMapUnitScale = scale; }
530
539 const QgsMapUnitScale &spacingMapUnitScale() const { return mSpacingMapUnitScale; }
540
552 double stackedDiagramSpacing() const { return mStackedDiagramSpacing; }
553
565 void setStackedDiagramSpacing( double spacing ) { mStackedDiagramSpacing = spacing; }
566
575 void setStackedDiagramSpacingUnit( Qgis::RenderUnit unit ) { mStackedDiagramSpacingUnit = unit; }
576
585 Qgis::RenderUnit stackedDiagramSpacingUnit() const { return mStackedDiagramSpacingUnit; }
586
595 void setStackedDiagramSpacingMapUnitScale( const QgsMapUnitScale &scale ) { mStackedDiagramSpacingMapUnitScale = scale; }
596
605 const QgsMapUnitScale &stackedDiagramSpacingMapUnitScale() const { return mStackedDiagramSpacingMapUnitScale; }
606
613 Direction direction() const;
614
621 void setDirection( Direction direction );
622
624 void readXml( const QDomElement &elem, const QgsReadWriteContext &context = QgsReadWriteContext() );
626 void writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const;
627
632 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
633
642 QgsLineSymbol *axisLineSymbol() const;
643
654 void setAxisLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
655
664 bool showAxis() const;
665
674 void setShowAxis( bool showAxis );
675
683 QgsPaintEffect *paintEffect() const;
684
694 void setPaintEffect( QgsPaintEffect *effect SIP_TRANSFER );
695
696 private:
697 double mSpacing = 0;
699 QgsMapUnitScale mSpacingMapUnitScale;
700
701 double mStackedDiagramSpacing = 0;
702 Qgis::RenderUnit mStackedDiagramSpacingUnit = Qgis::RenderUnit::Millimeters;
703 QgsMapUnitScale mStackedDiagramSpacingMapUnitScale;
704
705 Direction mDirection = Counterclockwise;
706
707 bool mShowAxis = false;
708 std::unique_ptr< QgsLineSymbol > mAxisLineSymbol;
709 std::unique_ptr< QgsPaintEffect > mPaintEffect;
710};
711
731
732
738
739class CORE_EXPORT QgsDiagramRenderer
740{
741#ifdef SIP_RUN
743 if ( sipCpp->rendererName() == "SingleCategory"_L1 )
744 sipType = sipType_QgsSingleCategoryDiagramRenderer;
745 else if ( sipCpp->rendererName() == "LinearlyInterpolated"_L1 )
746 sipType = sipType_QgsLinearlyInterpolatedDiagramRenderer;
747 else if ( sipCpp->rendererName() == "Stacked"_L1 )
748 sipType = sipType_QgsStackedDiagramRenderer;
749 else
750 sipType = NULL;
751 SIP_END
752#endif
753
754 public:
755
757 virtual ~QgsDiagramRenderer() = default;
758
763
765 virtual QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const;
766
767 virtual QString rendererName() const = 0;
768
770 virtual QList<QString> diagramAttributes() const = 0;
771
776 virtual QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const;
777
781 virtual void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const;
782
784 QgsDiagram *diagram() const { return mDiagram.get(); }
785
787 virtual QList<QgsDiagramSettings> diagramSettings() const = 0;
788
794 virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) = 0;
795
801 virtual void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const = 0;
802
807 virtual QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const SIP_FACTORY;
808
813 bool attributeLegend() const { return mShowAttributeLegend; }
814
820 void setAttributeLegend( bool enabled ) { mShowAttributeLegend = enabled; }
821
822 protected:
824 QgsDiagramRenderer &operator=( const QgsDiagramRenderer &other );
825
832 virtual bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const = 0;
833
839 virtual QSizeF diagramSize( const QgsFeature &feature, const QgsRenderContext &c ) const = 0;
840
842 void convertSizeToMapUnits( QSizeF &size, const QgsRenderContext &context ) const;
843
845 static int dpiPaintDevice( const QPainter * );
846
847 //read / write diagram
848
853 void _readXml( const QDomElement &elem, const QgsReadWriteContext &context );
854
859 void _writeXml( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
860
862 std::unique_ptr< QgsDiagram > mDiagram;
863
866
868};
869
875{
876 public:
878
880
882
884
885 QList<QString> diagramAttributes() const override { return mSettings.categoryAttributes; }
886
887 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
888
889 QList<QgsDiagramSettings> diagramSettings() const override;
890
891 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
892 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
893
894 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
895
896 protected:
897 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
898
899 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
900
901 private:
902 QgsDiagramSettings mSettings;
903};
904
911{
912 public:
914
918
920
922
924 QList<QgsDiagramSettings> diagramSettings() const override;
925
926 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
927
928 QList<QString> diagramAttributes() const override;
929
930 QSet< QString > referencedFields( const QgsExpressionContext &context = QgsExpressionContext() ) const override;
931
933
934 void setLowerValue( double val ) { mInterpolationSettings.lowerValue = val; }
935 double lowerValue() const { return mInterpolationSettings.lowerValue; }
936
937 void setUpperValue( double val ) { mInterpolationSettings.upperValue = val; }
938 double upperValue() const { return mInterpolationSettings.upperValue; }
939
940 void setLowerSize( QSizeF s ) { mInterpolationSettings.lowerSize = s; }
941 QSizeF lowerSize() const { return mInterpolationSettings.lowerSize; }
942
943 void setUpperSize( QSizeF s ) { mInterpolationSettings.upperSize = s; }
944 QSizeF upperSize() const { return mInterpolationSettings.upperSize; }
945
950 QString classificationField() const { return mInterpolationSettings.classificationField; }
951
956 void setClassificationField( const QString &field ) { mInterpolationSettings.classificationField = field; }
957
958 QString classificationAttributeExpression() const { return mInterpolationSettings.classificationAttributeExpression; }
959 void setClassificationAttributeExpression( const QString &expression ) { mInterpolationSettings.classificationAttributeExpression = expression; }
960
961 bool classificationAttributeIsExpression() const { return mInterpolationSettings.classificationAttributeIsExpression; }
962 void setClassificationAttributeIsExpression( bool isExpression ) { mInterpolationSettings.classificationAttributeIsExpression = isExpression; }
963
964 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
965 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
966
967 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
968
972 void setDataDefinedSizeLegend( QgsDataDefinedSizeLegend *settings SIP_TRANSFER );
973
977 QgsDataDefinedSizeLegend *dataDefinedSizeLegend() const;
978
979 protected:
980 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
981
982 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
983
984 private:
985 QgsDiagramSettings mSettings;
986 QgsDiagramInterpolationSettings mInterpolationSettings;
987
989 std::unique_ptr<QgsDataDefinedSizeLegend> mDataDefinedSizeLegend;
990};
991
1002{
1003 public:
1005
1007 ~QgsStackedDiagramRenderer() override;
1008
1010
1012
1014
1016 QSizeF sizeMapUnits( const QgsFeature &feature, const QgsRenderContext &c ) const override;
1017
1023 void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, QPointF pos, const QgsPropertyCollection &properties = QgsPropertyCollection() ) const override;
1024
1026 QList<QgsDiagramSettings> diagramSettings() const override;
1027
1028 void setDiagramSettings( const QgsDiagramSettings &s ) { mSettings = s; }
1029
1030 QList<QString> diagramAttributes() const override;
1031
1033
1034 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
1035 void writeXml( QDomElement &layerElem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
1036
1041 void _readXmlSubRenderers( const QDomElement &elem, const QgsReadWriteContext &context );
1042
1047 void _writeXmlSubRenderers( QDomElement &rendererElem, QDomDocument &doc, const QgsReadWriteContext &context ) const;
1048
1049 QList< QgsLayerTreeModelLegendNode * > legendItems( QgsLayerTreeLayer *nodeLayer ) const override SIP_FACTORY;
1050
1057 QList< QgsDiagramRenderer * > renderers( bool sortByDiagramMode = false ) const;
1058
1067 void addRenderer( QgsDiagramRenderer *renderer SIP_TRANSFER );
1068
1074 const QgsDiagramRenderer *renderer( const int index ) const;
1075
1077 int rendererCount() const;
1078
1079 protected:
1080 bool diagramSettings( const QgsFeature &feature, const QgsRenderContext &c, QgsDiagramSettings &s ) const override;
1081 QSizeF diagramSize( const QgsFeature &, const QgsRenderContext &c ) const override;
1082
1083 private:
1084 QgsDiagramSettings mSettings;
1085 QList< QgsDiagramRenderer * > mDiagramRenderers;
1086};
1087
1088
1089#endif // QGSDIAGRAMRENDERER_H
RenderUnit
Rendering size units.
Definition qgis.h:5340
@ Millimeters
Millimeters.
Definition qgis.h:5341
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:198
#define SIP_ENUM_BASETYPE(type)
Definition qgis_sip.h:274
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition qgis_sip.h:267
#define SIP_TRANSFER
Definition qgis_sip.h:35
#define SIP_FACTORY
Definition qgis_sip.h:83
#define SIP_END
Definition qgis_sip.h:215
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.