QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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 
24 class QgsProject;
25 
31 class CORE_EXPORT QgsLabelingEngineSettings
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 
235 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsLabelingEngineSettings::Flags )
236 
237 #endif // QGSLABELINGENGINESETTINGS_H
QgsLabelingEngineSettings::Popmusic_Tabu
@ Popmusic_Tabu
Definition: qgslabelingenginesettings.h:57
Qgis::TextRenderFormat
TextRenderFormat
Options for rendering text.
Definition: qgis.h:1331
QgsLabelingEngineSettings::setNumCandidatePositions
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.
Definition: qgslabelingenginesettings.h:135
QgsLabelingEngineSettings::searchMethod
Q_DECL_DEPRECATED Search searchMethod() const
Which search method to use for removal collisions between labels.
Definition: qgslabelingenginesettings.h:152
qgis.h
QgsLabelingEngineSettings::Popmusic_Tabu_Chain
@ Popmusic_Tabu_Chain
Definition: qgslabelingenginesettings.h:59
QgsLabelingEngineSettings::flags
Flags flags() const
Gets flags of the labeling engine.
Definition: qgslabelingenginesettings.h:82
QgsProject
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:103
SIP_DEPRECATED
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
QgsLabelingEngineSettings::PlacementEngineVersion
PlacementEngineVersion
Placement engine version.
Definition: qgslabelingenginesettings.h:68
QgsLabelingEngineSettings::defaultTextRenderFormat
Qgis::TextRenderFormat defaultTextRenderFormat() const
Returns the default text rendering format for the labels.
Definition: qgslabelingenginesettings.h:169
QgsLabelingEngineSettings
Stores global configuration for labeling engine.
Definition: qgslabelingenginesettings.h:31
QgsLabelingEngineSettings::testFlag
bool testFlag(Flag f) const
Test whether a particular flag is enabled.
Definition: qgslabelingenginesettings.h:84
qgis_sip.h
Q_DECLARE_OPERATORS_FOR_FLAGS
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.
QgsLabelingEngineSettings::setFlags
void setFlags(Flags flags)
Sets flags of the labeling engine.
Definition: qgslabelingenginesettings.h:80
QgsLabelingEngineSettings::Flag
Flag
Various flags that affect drawing and placement of labels.
Definition: qgslabelingenginesettings.h:35
QgsLabelingEngineSettings::PlacementEngineVersion1
@ PlacementEngineVersion1
Version 1, matches placement from QGIS <= 3.10.1.
Definition: qgslabelingenginesettings.h:70
QgsLabelingEngineSettings::Popmusic_Chain
@ Popmusic_Chain
Definition: qgslabelingenginesettings.h:58
QgsLabelingEngineSettings::numCandidatePositions
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.
Definition: qgslabelingenginesettings.h:124
QgsLabelingEngineSettings::Search
Search
Search methods in the PAL library to remove colliding labels (methods have different processing speed...
Definition: qgslabelingenginesettings.h:54
QgsLabelingEngineSettings::setDefaultTextRenderFormat
void setDefaultTextRenderFormat(Qgis::TextRenderFormat format)
Sets the default text rendering format for the labels.
Definition: qgslabelingenginesettings.h:180
QgsLabelingEngineSettings::setMaximumPolygonCandidatesPerCmSquared
void setMaximumPolygonCandidatesPerCmSquared(double candidates)
Sets the maximum number of polygon label candidates per centimeter squared.
Definition: qgslabelingenginesettings.h:118
QgsLabelingEngineSettings::setFlag
void setFlag(Flag f, bool enabled=true)
Sets whether a particual flag is enabled.
Definition: qgslabelingenginesettings.h:86
QgsLabelingEngineSettings::maximumPolygonCandidatesPerCmSquared
double maximumPolygonCandidatesPerCmSquared() const
Returns the maximum number of polygon label candidate positions per centimeter squared.
Definition: qgslabelingenginesettings.h:110
QgsLabelingEngineSettings::setMaximumLineCandidatesPerCm
void setMaximumLineCandidatesPerCm(double candidates)
Sets the maximum number of line label candidates per centimeter.
Definition: qgslabelingenginesettings.h:102
QgsLabelingEngineSettings::Chain
@ Chain
Definition: qgslabelingenginesettings.h:56
QgsLabelingEngineSettings::maximumLineCandidatesPerCm
double maximumLineCandidatesPerCm() const
Returns the maximum number of line label candidate positions per centimeter.
Definition: qgslabelingenginesettings.h:94
QgsLabelingEngineSettings::PlacementEngineVersion2
@ PlacementEngineVersion2
Version 2 (default for new projects since QGIS 3.12)
Definition: qgslabelingenginesettings.h:71
QgsLabelingEngineSettings::setSearchMethod
Q_DECL_DEPRECATED void setSearchMethod(Search s)
Used to set which search method to use for removal collisions between labels.
Definition: qgslabelingenginesettings.h:146