QGIS API Documentation 3.27.0-Master (f261cc1f8b)
qgslabelingenginesettings.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslabelingenginesettings.h
3 ---------------------
4 begin : April 2017
5 copyright : (C) 2017 by Martin Dobias
6 email : wonder dot sk at gmail dot com
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 QGSLABELINGENGINESETTINGS_H
16#define QGSLABELINGENGINESETTINGS_H
17
18#include "qgis_core.h"
19#include "qgis_sip.h"
20#include "qgis.h"
21#include <QFlags>
22#include <QColor>
23
24class QgsProject;
25
32{
33 public:
35 enum Flag
36 {
37 UseAllLabels = 1 << 1,
38 UsePartialCandidates = 1 << 2,
39 // TODO QGIS 4.0: remove
40 RenderOutlineLabels = 1 << 3,
41 DrawLabelRectOnly = 1 << 4,
42 DrawCandidates = 1 << 5,
43 DrawUnplacedLabels = 1 << 6,
44 CollectUnplacedLabels = 1 << 7,
45 };
46 Q_DECLARE_FLAGS( Flags, Flag )
47
48 // TODO QGIS 4 - remove
49
50
54 enum Search
55 {
60 Falp
61 };
62
69 {
72 };
73
75
77 void clear();
78
80 void setFlags( Flags flags ) { mFlags = flags; }
82 Flags flags() const { return mFlags; }
84 bool testFlag( Flag f ) const { return mFlags.testFlag( f ); }
86 void setFlag( Flag f, bool enabled = true ) { if ( enabled ) mFlags |= f; else mFlags &= ~f; }
87
94 double maximumLineCandidatesPerCm() const { return mMaxLineCandidatesPerCm; }
95
102 void setMaximumLineCandidatesPerCm( double candidates ) { mMaxLineCandidatesPerCm = candidates; }
103
110 double maximumPolygonCandidatesPerCmSquared() const { return mMaxPolygonCandidatesPerCmSquared; }
111
118 void setMaximumPolygonCandidatesPerCmSquared( double candidates ) { mMaxPolygonCandidatesPerCmSquared = candidates; }
119
124 Q_DECL_DEPRECATED void numCandidatePositions( int &candPoint, int &candLine, int &candPolygon ) const SIP_DEPRECATED
125 {
126 Q_UNUSED( candPoint )
127 Q_UNUSED( candLine )
128 Q_UNUSED( candPolygon )
129 }
130
135 Q_DECL_DEPRECATED void setNumCandidatePositions( int candPoint, int candLine, int candPolygon ) SIP_DEPRECATED
136 {
137 Q_UNUSED( candPoint )
138 Q_UNUSED( candLine )
139 Q_UNUSED( candPolygon )
140 }
141
146 Q_DECL_DEPRECATED void setSearchMethod( Search s ) SIP_DEPRECATED { Q_UNUSED( s ) }
147
152 Q_DECL_DEPRECATED Search searchMethod() const SIP_DEPRECATED { return Chain; }
153
155 void readSettingsFromProject( QgsProject *project );
157 void writeSettingsToProject( QgsProject *project );
158
159 // TODO QGIS 4.0: In reality the text render format settings don't only apply to labels, but also
160 // ANY text rendered using QgsTextRenderer (including some non-label text items in layouts).
161 // These methods should possibly be moved out of here and into the general QgsProject settings.
162
170 {
171 return mDefaultTextRenderFormat;
172 }
173
181 {
182 mDefaultTextRenderFormat = format;
183 }
184
191 QColor unplacedLabelColor() const;
192
199 void setUnplacedLabelColor( const QColor &color );
200
207 PlacementEngineVersion placementVersion() const;
208
215 void setPlacementVersion( PlacementEngineVersion version );
216
217 private:
219 Flags mFlags;
221 Search mSearchMethod = Chain;
222
223 // maximum density of line/polygon candidates per mm
224 double mMaxLineCandidatesPerCm = 5;
225 double mMaxPolygonCandidatesPerCmSquared = 2.5;
226
227 QColor mUnplacedLabelColor = QColor( 255, 0, 0 );
228
229 PlacementEngineVersion mPlacementVersion = PlacementEngineVersion2;
230
231 Qgis::TextRenderFormat mDefaultTextRenderFormat = Qgis::TextRenderFormat::AlwaysOutlines;
232
233};
234
235Q_DECLARE_OPERATORS_FOR_FLAGS( QgsLabelingEngineSettings::Flags )
236
237#endif // QGSLABELINGENGINESETTINGS_H
TextRenderFormat
Options for rendering text.
Definition: qgis.h:1384
Stores global configuration for labeling engine.
Q_DECL_DEPRECATED void numCandidatePositions(int &candPoint, int &candLine, int &candPolygon) const
Gets number of candidate positions that will be generated for each label feature.
Qgis::TextRenderFormat defaultTextRenderFormat() const
Returns the default text rendering format for the labels.
void setDefaultTextRenderFormat(Qgis::TextRenderFormat format)
Sets the default text rendering format for the labels.
bool testFlag(Flag f) const
Test whether a particular flag is enabled.
Flags flags() const
Gets flags of the labeling engine.
Flag
Various flags that affect drawing and placement of labels.
Q_DECL_DEPRECATED Search searchMethod() const
Which search method to use for removal collisions between labels.
void setFlag(Flag f, bool enabled=true)
Sets whether a particual flag is enabled.
Search
Search methods in the PAL library to remove colliding labels (methods have different processing speed...
void setMaximumPolygonCandidatesPerCmSquared(double candidates)
Sets the maximum number of polygon label candidates per centimeter squared.
PlacementEngineVersion
Placement engine version.
@ PlacementEngineVersion1
Version 1, matches placement from QGIS <= 3.10.1.
@ PlacementEngineVersion2
Version 2 (default for new projects since QGIS 3.12)
void setFlags(Flags flags)
Sets flags of the labeling engine.
Q_DECL_DEPRECATED void setNumCandidatePositions(int candPoint, int candLine, int candPolygon)
Sets the number of candidate positions that will be generated for each label feature.
double maximumPolygonCandidatesPerCmSquared() const
Returns the maximum number of polygon label candidate positions per centimeter squared.
Q_DECL_DEPRECATED void setSearchMethod(Search s)
Used to set which search method to use for removal collisions between labels.
void setMaximumLineCandidatesPerCm(double candidates)
Sets the maximum number of line label candidates per centimeter.
double maximumLineCandidatesPerCm() const
Returns the maximum number of line label candidate positions per centimeter.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:104
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.