QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgspallabeling.h
Go to the documentation of this file.
1/***************************************************************************
2 qgspallabeling.h
3 Smart labeling for vector layers
4 -------------------
5 begin : June 2009
6 copyright : (C) Martin Dobias
7 email : wonder dot sk at gmail dot com
8
9 ***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSPALLABELING_H
19#define QGSPALLABELING_H
20
21#include "qgis_core.h"
22#include "qgis_sip.h"
23#include <QString>
24#include <QFont>
25#include <QFontDatabase>
26#include <QColor>
27#include <QHash>
28#include <QList>
29#include <QPainter>
30#include <QRectF>
31#include <QMap>
32#include "qgsfeature.h"
33#include "qgsgeometry.h"
34#include "qgsfields.h"
35#include "qgspointxy.h"
36#include "qgsmapunitscale.h"
37#include "qgsstringutils.h"
38#include "qgstextformat.h"
45#include "qgsexpression.h"
46
47class QgsTextDocument;
49
50namespace pal SIP_SKIP
51{
52 class Pal;
53 class Layer;
54 class LabelPosition;
55}
56
58class QgsRectangle;
59class QgsMapToPixel;
60class QgsFeature;
62class QgsVectorLayer;
63class QgsExpression;
64class QFontMetricsF;
65class QPainter;
66class QPicture;
67class QgsGeometry;
70class QgsMapLayer;
71class QgsMapSettings;
72class QgsLabelFeature;
76class QgsDxfExport;
79class QgsCallout;
80
86class CORE_EXPORT QgsPalLayerSettings
87{
88 public:
92
94 QgsPalLayerSettings &operator=( const QgsPalLayerSettings &s );
95
96 // *INDENT-OFF*
99 {
100 // text style
101 Size = 0,
102 Bold = 1,
103 Italic = 2,
104 Underline = 3,
105 Color = 4,
106 Strikeout = 5,
107 Family = 6,
108 FontStyle = 21,
109 FontSizeUnit = 22,
110 FontTransp = 18,
111 FontOpacity = 92,
112 FontCase = 27,
113 FontLetterSpacing = 28,
114 FontWordSpacing = 29,
115 FontBlendMode = 30,
116 FontStretchFactor = 113,
117
118 // text formatting
119 MultiLineWrapChar = 31,
120 AutoWrapLength = 101,
121 MultiLineHeight = 32,
122 MultiLineAlignment = 33,
123 TextOrientation = 110,
124 DirSymbDraw = 34,
125 DirSymbLeft = 35,
126 DirSymbRight = 36,
127 DirSymbPlacement = 37,
128 DirSymbReverse = 38,
129 NumFormat = 39,
130 NumDecimals = 40,
131 NumPlusSign = 41,
132
133 // text buffer
134 BufferDraw = 42,
135 BufferSize = 7,
136 BufferUnit = 43,
137 BufferColor = 8,
138 BufferTransp = 19,
139 BufferOpacity = 94,
140 BufferJoinStyle = 44,
141 BufferBlendMode = 45,
142
143 // mask buffer
144 MaskEnabled = 104,
145 MaskBufferSize = 105,
146 MaskBufferUnit = 106,
147 MaskOpacity = 107,
148 MaskJoinStyle = 108,
149
150 // background
151 ShapeDraw = 46,
152 ShapeKind = 47,
153 ShapeSVGFile = 48,
154 ShapeSizeType = 49,
155 ShapeSizeX = 50,
156 ShapeSizeY = 85,
157 ShapeSizeUnits = 51,
158 ShapeRotationType = 52,
159 ShapeRotation = 53,
160 ShapeOffset = 54,
161 ShapeOffsetUnits = 55,
162 ShapeRadii = 56,
163 ShapeRadiiUnits = 57,
164 ShapeTransparency = 63,
165 ShapeOpacity = 93,
166 ShapeBlendMode = 64,
167 ShapeFillColor = 58,
168 ShapeStrokeColor = 59,
169 ShapeStrokeWidth = 60,
170 ShapeStrokeWidthUnits = 61,
171 ShapeJoinStyle = 62,
172
173 // drop shadow
174 ShadowDraw = 65,
175 ShadowUnder = 66,
176 ShadowOffsetAngle = 67,
177 ShadowOffsetDist = 68,
178 ShadowOffsetUnits = 69,
179 ShadowRadius = 70,
180 ShadowRadiusUnits = 71,
181 ShadowTransparency = 72,
182 ShadowOpacity = 95,
183 ShadowScale = 73,
184 ShadowColor = 74,
185 ShadowBlendMode = 75,
186
187 // placement
188 CentroidWhole = 76,
189 OffsetQuad = 77,
190 OffsetXY = 78,
191 OffsetUnits = 80,
192 LabelDistance = 13,
193 DistanceUnits = 81,
194 OffsetRotation = 82,
195 CurvedCharAngleInOut = 83,
196 // (data defined only)
197 PositionX = 9,
198 PositionY = 10,
199 PositionPoint = 114,
200 Hali = 11,
201 Vali = 12,
202 Rotation = 14,
203 LabelRotation = 96,
204 RepeatDistance = 84,
205 RepeatDistanceUnit = 86,
206 Priority = 87,
207 PredefinedPositionOrder = 91,
208 LinePlacementOptions = 99,
209 OverrunDistance = 102,
210 LabelAllParts = 103,
211 PolygonLabelOutside = 109,
212 LineAnchorPercent = 111,
213 LineAnchorClipping = 112,
214 LineAnchorType = 115,
215 LineAnchorTextPoint = 116,
216
217 // rendering
218 ScaleVisibility = 23,
219 MinScale = 16,
220 MinimumScale = 97,
221 MaxScale = 17,
222 MaximumScale = 98,
223 FontLimitPixel = 24,
224 FontMinPixel = 25,
225 FontMaxPixel = 26,
226 IsObstacle = 88,
227 ObstacleFactor = 89,
228 ZIndex = 90,
229 CalloutDraw = 100,
230
231 AllowDegradedPlacement = 117,
232 OverlapHandling = 118,
233
234 // (data defined only)
235 Show = 15,
236 AlwaysShow = 20
237 };
238 // *INDENT-ON*
239
251 bool prepare( QgsRenderContext &context, QSet<QString> &attributeNames SIP_INOUT, const QgsFields &fields, const QgsMapSettings &mapSettings, const QgsCoordinateReferenceSystem &crs );
252
257 QSet<QString> referencedFields( const QgsRenderContext &context ) const;
258
267 void startRender( QgsRenderContext &context );
268
276 void stopRender( QgsRenderContext &context );
277
283 bool containsAdvancedEffects() const;
284
288 static const QgsPropertiesDefinition &propertyDefinitions();
289
297 bool drawLabels = true;
298
299 //-- text style
300
306 QString fieldName;
307
312 bool isExpression = false;
313
317 QgsExpression *getLabelExpression();
318
322 Q_DECL_DEPRECATED QColor previewBkgrdColor = Qt::white;
323
327 bool useSubstitutions = false;
328
329 //-- text formatting
330
335 QString wrapChar;
336
344 int autoWrapLength = 0;
345
356 bool useMaxLineLengthForAutoWrap = true;
357
360
367 bool formatNumbers = false;
368
374 int decimals = 3;
375
381 bool plusSign = false;
382
383 //-- placement
384
387
394 Qgis::LabelPolygonPlacementFlags polygonPlacementFlags() const { return mPolygonPlacementFlags; }
395
402 void setPolygonPlacementFlags( Qgis::LabelPolygonPlacementFlags flags ) { mPolygonPlacementFlags = flags; }
403
408 bool centroidWhole = false;
409
415 bool centroidInside = false;
416
423 QVector< Qgis::LabelPredefinedPointPosition > predefinedPositionOrder SIP_SKIP;
424
428 bool fitInPolygonOnly = false;
429
435 double dist = 0;
436
443
450
453
459 double repeatDistance = 0;
460
467
474
479
486 double xOffset = 0;
487
494 double yOffset = 0;
495
503
511
513 double angleOffset = 0;
514
516 bool preserveRotation = true;
517
523 Qgis::AngleUnit rotationUnit() const;
524
530 void setRotationUnit( Qgis::AngleUnit angleUnit );
531
536 double maxCurvedCharAngleIn = 25.0;
537
542 double maxCurvedCharAngleOut = -25.0;
543
548 int priority = 5;
549
550 //-- rendering
551
557 bool scaleVisibility = false;
558
569 double maximumScale = 0;
570
581 double minimumScale = 0;
582
588 bool fontLimitPixelSize = false;
589
595 int fontMinPixelSize = 0;
596
602 int fontMaxPixelSize = 10000;
603
606
611 bool labelPerPart = false;
612
614 double zIndex = 0;
615
618
621
623 bool geometryGeneratorEnabled = false;
624
630
635 void setLegendString( const QString &legendString ) { mLegendString = legendString; }
636
641 QString legendString() const { return mLegendString; }
642
649#ifndef SIP_RUN
650 void calculateLabelSize( const QFontMetricsF *fm, const QString &text, double &labelX, double &labelY, const QgsFeature *f = nullptr, QgsRenderContext *context = nullptr, double *rotatedLabelX SIP_OUT = nullptr, double *rotatedLabelY SIP_OUT = nullptr,
651 QgsTextDocument *document = nullptr, QgsTextDocumentMetrics *documentMetrics = nullptr, QRectF *outerBounds = nullptr );
652#else
653 void calculateLabelSize( const QFontMetricsF *fm, const QString &text, double &labelX, double &labelY, const QgsFeature *f = nullptr, QgsRenderContext *context = nullptr, double *rotatedLabelX SIP_OUT = nullptr, double *rotatedLabelY SIP_OUT = nullptr );
654#endif
655
665 void registerFeature( const QgsFeature &f, QgsRenderContext &context );
666
667#ifndef SIP_RUN
668
685 std::unique_ptr< QgsLabelFeature > registerFeatureWithDetails( const QgsFeature &feature, QgsRenderContext &context,
686 QgsGeometry obstacleGeometry = QgsGeometry(), const QgsSymbol *symbol = nullptr );
687#endif
688
692 void readXml( const QDomElement &elem, const QgsReadWriteContext &context );
693
697 QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context ) const;
698
703 QgsPropertyCollection &dataDefinedProperties() { return mDataDefinedProperties; }
704
711 const QgsPropertyCollection &dataDefinedProperties() const SIP_SKIP { return mDataDefinedProperties; }
712
719 void setDataDefinedProperties( const QgsPropertyCollection &collection ) { mDataDefinedProperties = collection; }
720
725 const QgsTextFormat &format() const { return mFormat; }
726
732 void setFormat( const QgsTextFormat &format ) { mFormat = format; }
733
742 QgsCallout *callout() const { return mCallout.get(); }
743
752 void setCallout( QgsCallout *callout SIP_TRANSFER );
753
762 const QgsLabelLineSettings &lineSettings() const { return mLineSettings; } SIP_SKIP
763
771 QgsLabelLineSettings &lineSettings() { return mLineSettings; }
772
780 void setLineSettings( const QgsLabelLineSettings &settings ) { mLineSettings = settings; }
781
788 const QgsLabelObstacleSettings &obstacleSettings() const { return mObstacleSettings; } SIP_SKIP
789
795 QgsLabelObstacleSettings &obstacleSettings() { return mObstacleSettings; }
796
802 void setObstacleSettings( const QgsLabelObstacleSettings &settings ) { mObstacleSettings = settings; }
803
810 const QgsLabelThinningSettings &thinningSettings() const { return mThinningSettings; } SIP_SKIP
811
817 QgsLabelThinningSettings &thinningSettings() { return mThinningSettings; }
818
824 void setThinningSettings( const QgsLabelThinningSettings &settings ) { mThinningSettings = settings; }
825
832 const QgsLabelPlacementSettings &placementSettings() const { return mPlacementSettings; } SIP_SKIP
833
839 QgsLabelPlacementSettings &placementSettings() { return mPlacementSettings; }
840
846 void setPlacementSettings( const QgsLabelPlacementSettings &settings ) { mPlacementSettings = settings; }
847
857 static QPixmap labelSettingsPreviewPixmap( const QgsPalLayerSettings &settings, QSize size, const QString &previewText = QString(), int padding = 0, const QgsScreenProperties &screen = QgsScreenProperties() );
858
865 Qgis::UnplacedLabelVisibility unplacedVisibility() const;
866
873 void setUnplacedVisibility( Qgis::UnplacedLabelVisibility visibility );
874
875 // temporary stuff: set when layer gets prepared or labeled
876 const QgsFeature *mCurFeat = nullptr;
878 int fieldIndex = 0;
879 const QgsMapToPixel *xform = nullptr;
881
885 int mFeaturesToLabel = 0; // total features that will probably be labeled, may be less (figured before PAL)
886 int mFeatsSendingToPal = 0; // total features tested for sending into PAL (relative to maxNumLabels)
887 int mFeatsRegPal = 0; // number of features registered in PAL, when using limitNumLabels
888
889 private:
890
891 friend class QgsVectorLayer; // to allow calling readFromLayerCustomProperties()
892
896 void readFromLayerCustomProperties( QgsVectorLayer *layer );
897
901 void readOldDataDefinedPropertyMap( QgsVectorLayer *layer, QDomElement *parentElem );
902
906 void readOldDataDefinedProperty( QgsVectorLayer *layer, QgsPalLayerSettings::Property p );
907
908 enum DataDefinedValueType
909 {
910 DDBool,
911 DDInt,
912 DDIntPos,
913 DDDouble,
914 DDDoublePos,
915 DDRotation180,
916 DDOpacity,
917 DDString,
918 DDUnits,
919 DDColor,
920 DDJoinStyle,
921 DDBlendMode,
922 DDPointF,
923 DDSizeF,
924 };
925
926 // convenience data defined evaluation function
927 bool dataDefinedValEval( DataDefinedValueType valType,
929 QVariant &exprVal, QgsExpressionContext &context, const QVariant &originalValue = QVariant() );
930
931 void parseTextStyle( QFont &labelFont,
932 Qgis::RenderUnit fontunits,
933 QgsRenderContext &context );
934
935 void parseTextBuffer( QgsRenderContext &context );
936
937 void parseTextMask( QgsRenderContext &context );
938
939 void parseTextFormatting( QgsRenderContext &context );
940
941 void parseShapeBackground( QgsRenderContext &context );
942
943 void parseDropShadow( QgsRenderContext &context );
944
949 bool checkMinimumSizeMM( const QgsRenderContext &ct, const QgsGeometry &geom, double minSize ) const;
950
954 std::unique_ptr< QgsLabelFeature > registerObstacleFeature( const QgsFeature &f, QgsRenderContext &context, const QgsGeometry &obstacleGeometry = QgsGeometry() );
955
956 QMap<Property, QVariant> dataDefinedValues;
957
959 QgsPropertyCollection mDataDefinedProperties;
960
961 QgsExpression *expression = nullptr;
962
963 std::unique_ptr< QFontDatabase > mFontDB;
964
965 QgsTextFormat mFormat;
966
967 std::unique_ptr< QgsCallout > mCallout;
968
969 QgsLabelPlacementSettings mPlacementSettings;
970 QgsLabelLineSettings mLineSettings;
971 QgsLabelObstacleSettings mObstacleSettings;
972 QgsLabelThinningSettings mThinningSettings;
973
975
976 QgsExpression mGeometryGeneratorExpression;
977
978 bool mRenderStarted = false;
979
980 QString mLegendString = QObject::tr( "Aa" );
981
983
986
987 static void initPropertyDefinitions();
988};
989
994class CORE_EXPORT QgsLabelCandidate
995{
996 public:
997 QgsLabelCandidate( const QRectF &r, double c ): rect( r ), cost( c ) {}
998
999 QRectF rect;
1000 double cost;
1001};
1002
1008class CORE_EXPORT QgsPalLabeling
1009{
1010 public:
1011
1015 static bool staticWillUseLayer( const QgsMapLayer *layer );
1016
1018 static void drawLabelCandidateRect( pal::LabelPosition *lp, QPainter *painter, const QgsMapToPixel *xform, QList<QgsLabelCandidate> *candidates = nullptr ) SIP_SKIP;
1019
1029 static QgsGeometry prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false ) SIP_FACTORY;
1030
1040 static bool geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false );
1041
1053 static QStringList splitToLines( const QString &text, const QString &wrapCharacter, int autoWrapLength = 0, bool useMaxLineLengthWhenAutoWrapping = true );
1054
1062 static QStringList splitToGraphemes( const QString &text );
1063
1064 private:
1066 static void dataDefinedTextStyle( QgsPalLayerSettings &tmpLyr,
1067 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1068
1070 static void dataDefinedTextFormatting( QgsPalLayerSettings &tmpLyr,
1071 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1072
1074 static void dataDefinedTextBuffer( QgsPalLayerSettings &tmpLyr,
1075 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1076
1078 static void dataDefinedTextMask( QgsPalLayerSettings &tmpLyr,
1079 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1080
1082 static void dataDefinedShapeBackground( QgsPalLayerSettings &tmpLyr,
1083 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1084
1086 static void dataDefinedDropShadow( QgsPalLayerSettings &tmpLyr,
1087 const QMap< QgsPalLayerSettings::Property, QVariant > &ddValues );
1088
1089 friend class QgsVectorLayerLabelProvider; // to allow calling the static methods above
1090 friend class QgsDxfExport; // to allow calling the static methods above
1091
1099 static bool checkMinimumSizeMM( const QgsRenderContext &context, const QgsGeometry &geom, double minSize );
1100
1102};
1103
1104
1105#endif // QGSPALLABELING_H
AngleUnit
Units of angles.
Definition: qgis.h:4210
@ Degrees
Degrees.
LabelOffsetType
Behavior modifier for label offset and distance, only applies in some label placement modes.
Definition: qgis.h:960
@ FromPoint
Offset distance applies from point geometry.
LabelPlacement
Placement modes which determine how label candidates are generated for a feature.
Definition: qgis.h:914
@ AroundPoint
Arranges candidates in a circle around a point (or centroid of a polygon). Applies to point or polygo...
@ AllowPlacementInsideOfPolygon
Labels can be placed inside a polygon feature.
QFlags< LabelPolygonPlacementFlag > LabelPolygonPlacementFlags
Polygon placement flags, which control how candidates are generated for a polygon feature.
Definition: qgis.h:1031
LabelQuadrantPosition
Label quadrant positions.
Definition: qgis.h:974
UnplacedLabelVisibility
Unplaced label visibility.
Definition: qgis.h:887
@ FollowEngineSetting
Respect the label engine setting.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition: qgis.h:255
@ Unknown
Unknown types.
LabelMultiLineAlignment
Text alignment for multi-line labels.
Definition: qgis.h:1057
@ FollowPlacement
Alignment follows placement of label, e.g., labels to the left of a feature will be drawn with right ...
RenderUnit
Rendering size units.
Definition: qgis.h:4255
@ Millimeters
Millimeters.
UpsideDownLabelHandling
Handling techniques for upside down labels.
Definition: qgis.h:1042
@ FlipUpsideDownLabels
Upside-down labels (90 <= angle < 270) are shown upright.
Abstract base class for callout renderers.
Definition: qgscallout.h:53
This class represents a coordinate reference system (CRS).
Class for doing transforms between two map coordinate systems.
Stores the settings for rendering of all diagrams for a layer.
Exports QGIS layers to the DXF format.
Definition: qgsdxfexport.h:66
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Class for parsing and evaluation of expressions (formerly called "search strings").
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Container of fields for a vector layer.
Definition: qgsfields.h:45
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:162
Represents a label candidate.
QgsLabelCandidate(const QRectF &r, double c)
The QgsLabelFeature class describes a feature that should be used within the labeling engine.
Contains settings related to how the label engine places and formats labels for line features (or pol...
Contains settings related to how the label engine treats features as obstacles.
Contains general settings related to how labels are placed.
A class to query the labeling structure at a given point (small wrapper around pal RTree class)
Contains settings related to how the label engine removes candidate label positions and reduces the n...
The QgsLabelingEngine class provides map labeling functionality.
Base class for all map layer types.
Definition: qgsmaplayer.h:75
The QgsMapSettings class contains configuration for rendering of the map.
Perform transforms between map coordinates and device coordinates.
Definition: qgsmaptopixel.h:39
Struct for storing maximum and minimum scales for measurements in map units.
PAL labeling utilities.
Contains settings for how a map layer will be labeled.
QgsMapUnitScale labelOffsetMapUnitScale
Map unit scale for label offset.
const QgsLabelObstacleSettings & obstacleSettings() const
Returns the label obstacle settings.
void setObstacleSettings(const QgsLabelObstacleSettings &settings)
Sets the label obstacle settings.
const QgsPropertyCollection & dataDefinedProperties() const
Returns a reference to the label's property collection, used for data defined overrides.
const QgsLabelPlacementSettings & placementSettings() const
Returns the label placement settings.
void setFormat(const QgsTextFormat &format)
Sets the label text formatting settings, e.g., font settings, buffer settings, etc.
void setPolygonPlacementFlags(Qgis::LabelPolygonPlacementFlags flags)
Sets the polygon placement flags, which dictate how polygon labels can be placed.
QString wrapChar
Wrapping character string.
QgsCoordinateTransform ct
QString legendString() const
legendString
QgsGeometry extentGeom
void setLineSettings(const QgsLabelLineSettings &settings)
Sets the label line settings, which contain settings related to how the label engine places and forma...
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the label's property collection, used for data defined overrides.
QgsLabelLineSettings & lineSettings()
Returns the label line settings, which contain settings related to how the label engine places and fo...
QgsCallout * callout() const
Returns the label callout renderer, responsible for drawing label callouts.
const QgsLabelThinningSettings & thinningSettings() const
Returns the label thinning settings.
void setLegendString(const QString &legendString)
setLegendString
void setThinningSettings(const QgsLabelThinningSettings &settings)
Sets the label thinning settings.
void setDataDefinedProperties(const QgsPropertyCollection &collection)
Sets the label's property collection, used for data defined overrides.
void setPlacementSettings(const QgsLabelPlacementSettings &settings)
Sets the label placement settings.
QgsLabelThinningSettings & thinningSettings()
Returns the label thinning settings.
QString geometryGenerator
The geometry generator expression. Null if disabled.
const QgsLabelLineSettings & lineSettings() const
Returns the label line settings, which contain settings related to how the label engine places and fo...
QgsMapUnitScale distMapUnitScale
Map unit scale for label feature distance.
QgsStringReplacementCollection substitutions
Substitution collection for automatic text substitution with labels.
QgsMapUnitScale repeatDistanceMapUnitScale
Map unit scale for repeating labels for a single feature.
Property
Data definable properties.
QString fieldName
Name of field (or an expression) to use for label text.
const QgsTextFormat & format() const
Returns the label text formatting settings, e.g., font settings, buffer settings, etc.
QgsLabelPlacementSettings & placementSettings()
Returns the label placement settings.
Qgis::LabelPolygonPlacementFlags polygonPlacementFlags() const
Returns the polygon placement flags, which dictate how polygon labels can be placed.
QgsLabelObstacleSettings & obstacleSettings()
Returns the label obstacle settings.
A class to represent a 2D point.
Definition: qgspointxy.h:60
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Contains information about the context of a rendering operation.
Stores properties relating to a screen.
A collection of string replacements (specified using QgsStringReplacement objects).
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:94
Contains pre-calculated metrics of a QgsTextDocument.
Represents a document consisting of one or more QgsTextBlock objects.
Container for all settings relating to text rendering.
Definition: qgstextformat.h:41
Class that adds extra information to QgsLabelFeature for text labels.
The QgsVectorLayerDiagramProvider class implements support for diagrams within the labeling engine.
The QgsVectorLayerLabelProvider class implements a label provider for vector layers.
Represents a vector layer which manages a vector based data sets.
LabelPosition is a candidate feature label position.
Definition: labelposition.h:56
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_SKIP
Definition: qgis_sip.h:126
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition: qgis_sip.h:271
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_OUT
Definition: qgis_sip.h:58
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_INOUT
Definition: qgis_sip.h:71
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
const QgsCoordinateReferenceSystem & crs