mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-15 00:02:52 -04:00
See https://github.com/qgis/QGIS-Enhancement-Proposals/issues/299 Implements the API framework for setting advanced labeling engine rules for a project, and implements 4 initial rule types: - QgsLabelingEngineRuleMinimumDistanceLabelToFeature: prevents labels being placed too *close* to features from a different layer - QgsLabelingEngineRuleMaximumDistanceLabelToFeature: prevents labels being placed too *far* from features from a different layer - QgsLabelingEngineRuleMinimumDistanceLabelToLabel: prevents labels being placed too close to labels from a different layer - QgsLabelingEngineRuleAvoidLabelOverlapWithFeature: prevents labels being placed overlapping features from a different layer (note that the first 3 rules require a build based on GEOS >= 3.10, they are not available for older GEOS builds) Also implements a registry for storing available rule classes, and serialization of rules and configuration in QGIS projects
298 lines
7.9 KiB
Plaintext
298 lines
7.9 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/labeling/qgslabelingenginesettings.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
class QgsLabelingEngineSettings
|
|
{
|
|
%Docstring(signature="appended")
|
|
Stores global configuration for labeling engine
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgslabelingenginesettings.h"
|
|
%End
|
|
public:
|
|
|
|
|
|
enum Search
|
|
{
|
|
Chain,
|
|
Popmusic_Tabu,
|
|
Popmusic_Chain,
|
|
Popmusic_Tabu_Chain,
|
|
Falp
|
|
};
|
|
|
|
QgsLabelingEngineSettings();
|
|
~QgsLabelingEngineSettings();
|
|
|
|
QgsLabelingEngineSettings( const QgsLabelingEngineSettings &other );
|
|
|
|
void clear();
|
|
%Docstring
|
|
Returns the configuration to the defaults
|
|
%End
|
|
|
|
void setFlags( Qgis::LabelingFlags flags );
|
|
%Docstring
|
|
Sets flags of the labeling engine
|
|
%End
|
|
Qgis::LabelingFlags flags() const;
|
|
%Docstring
|
|
Gets flags of the labeling engine
|
|
%End
|
|
bool testFlag( Qgis::LabelingFlag f ) const;
|
|
%Docstring
|
|
Test whether a particular flag is enabled
|
|
%End
|
|
void setFlag( Qgis::LabelingFlag f, bool enabled = true );
|
|
%Docstring
|
|
Sets whether a particual flag is enabled
|
|
%End
|
|
|
|
double maximumLineCandidatesPerCm() const;
|
|
%Docstring
|
|
Returns the maximum number of line label candidate positions per centimeter.
|
|
|
|
.. seealso:: :py:func:`setMaximumLineCandidatesPerCm`
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
void setMaximumLineCandidatesPerCm( double candidates );
|
|
%Docstring
|
|
Sets the maximum number of line label ``candidates`` per centimeter.
|
|
|
|
.. seealso:: :py:func:`maximumLineCandidatesPerCm`
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
double maximumPolygonCandidatesPerCmSquared() const;
|
|
%Docstring
|
|
Returns the maximum number of polygon label candidate positions per centimeter squared.
|
|
|
|
.. seealso:: :py:func:`setMaximumPolygonCandidatesPerCmSquared`
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
void setMaximumPolygonCandidatesPerCmSquared( double candidates );
|
|
%Docstring
|
|
Sets the maximum number of polygon label ``candidates`` per centimeter squared.
|
|
|
|
.. seealso:: :py:func:`maximumPolygonCandidatesPerCmSquared`
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
void numCandidatePositions( int &candPoint, int &candLine, int &candPolygon ) const /Deprecated/;
|
|
%Docstring
|
|
Gets number of candidate positions that will be generated for each label feature.
|
|
|
|
.. deprecated:: 3.12
|
|
|
|
Use :py:func:`~QgsLabelingEngineSettings.maximumPolygonCandidatesPerCmSquared` and :py:func:`~QgsLabelingEngineSettings.maximumLineCandidatesPerCm` instead.
|
|
%End
|
|
|
|
void setNumCandidatePositions( int candPoint, int candLine, int candPolygon ) /Deprecated/;
|
|
%Docstring
|
|
Sets the number of candidate positions that will be generated for each label feature.
|
|
|
|
.. deprecated:: 3.12
|
|
|
|
Use :py:func:`~QgsLabelingEngineSettings.setMaximumPolygonCandidatesPerCmSquared` and :py:func:`~QgsLabelingEngineSettings.setMaximumLineCandidatesPerCm` instead.
|
|
%End
|
|
|
|
void setSearchMethod( Search s ) /Deprecated/;
|
|
%Docstring
|
|
Used to set which search method to use for removal collisions between labels
|
|
|
|
.. deprecated:: 3.10
|
|
|
|
Chain is always used.
|
|
%End
|
|
|
|
Search searchMethod() const /Deprecated/;
|
|
%Docstring
|
|
Which search method to use for removal collisions between labels
|
|
|
|
.. deprecated:: 3.10
|
|
|
|
Chain is always used.
|
|
%End
|
|
|
|
|
|
void readSettingsFromProject( QgsProject *project );
|
|
%Docstring
|
|
Read configuration of the labeling engine from a project
|
|
|
|
.. note::
|
|
|
|
Both this method and :py:func:`~QgsLabelingEngineSettings.readXml` must be called to completely restore the object's state from a project.
|
|
%End
|
|
|
|
void writeSettingsToProject( QgsProject *project );
|
|
%Docstring
|
|
Write configuration of the labeling engine to a project.
|
|
|
|
.. note::
|
|
|
|
Both this method and :py:func:`~QgsLabelingEngineSettings.writeXml` must be called to completely store the object's state in a project.
|
|
%End
|
|
|
|
void writeXml( QDomDocument &doc, QDomElement &element, const QgsReadWriteContext &context ) const;
|
|
%Docstring
|
|
Writes the label engine settings to an XML ``element``.
|
|
|
|
.. note::
|
|
|
|
Both this method and :py:func:`~QgsLabelingEngineSettings.writeSettingsToProject` must be called to completely store the object's state in a project.
|
|
|
|
.. seealso:: :py:func:`readXml`
|
|
|
|
.. seealso:: :py:func:`writeSettingsToProject`
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
void readXml( const QDomElement &element, const QgsReadWriteContext &context );
|
|
%Docstring
|
|
Reads the label engine settings from an XML ``element``.
|
|
|
|
.. note::
|
|
|
|
Both this method and :py:func:`~QgsLabelingEngineSettings.readSettingsFromProject` must be called to completely restore the object's state from a project.
|
|
|
|
.. note::
|
|
|
|
:py:func:`~QgsLabelingEngineSettings.resolveReferences` must be called following this method.
|
|
|
|
.. seealso:: :py:func:`writeXml`
|
|
|
|
.. seealso:: :py:func:`readSettingsFromProject`
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
void resolveReferences( const QgsProject *project );
|
|
%Docstring
|
|
Resolves reference to layers from stored layer ID.
|
|
|
|
Should be called following a call :py:func:`~QgsLabelingEngineSettings.readXml`.
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
|
|
Qgis::TextRenderFormat defaultTextRenderFormat() const;
|
|
%Docstring
|
|
Returns the default text rendering format for the labels.
|
|
|
|
.. seealso:: :py:func:`setDefaultTextRenderFormat`
|
|
|
|
.. versionadded:: 3.4.3
|
|
%End
|
|
|
|
void setDefaultTextRenderFormat( Qgis::TextRenderFormat format );
|
|
%Docstring
|
|
Sets the default text rendering ``format`` for the labels.
|
|
|
|
.. seealso:: :py:func:`defaultTextRenderFormat`
|
|
|
|
.. versionadded:: 3.4.3
|
|
%End
|
|
|
|
QColor unplacedLabelColor() const;
|
|
%Docstring
|
|
Returns the color to use when rendering unplaced labels.
|
|
|
|
.. seealso:: :py:func:`setUnplacedLabelColor`
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
void setUnplacedLabelColor( const QColor &color );
|
|
%Docstring
|
|
Sets the ``color`` to use when rendering unplaced labels.
|
|
|
|
.. seealso:: :py:func:`unplacedLabelColor`
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
Qgis::LabelPlacementEngineVersion placementVersion() const;
|
|
%Docstring
|
|
Returns the placement engine version, which dictates how the label placement problem is solved.
|
|
|
|
.. seealso:: :py:func:`setPlacementVersion`
|
|
|
|
.. versionadded:: 3.10.2
|
|
%End
|
|
|
|
void setPlacementVersion( Qgis::LabelPlacementEngineVersion version );
|
|
%Docstring
|
|
Sets the placement engine ``version``, which dictates how the label placement problem is solved.
|
|
|
|
.. seealso:: :py:func:`placementVersion`
|
|
|
|
.. versionadded:: 3.10.2
|
|
%End
|
|
|
|
QList< QgsAbstractLabelingEngineRule * > rules();
|
|
%Docstring
|
|
Returns a list of labeling engine rules which must be satifisfied
|
|
while placing labels.
|
|
|
|
.. seealso:: :py:func:`addRule`
|
|
|
|
.. seealso:: :py:func:`setRules`
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
|
|
void addRule( QgsAbstractLabelingEngineRule *rule /Transfer/ );
|
|
%Docstring
|
|
Adds a labeling engine ``rule`` which must be satifisfied
|
|
while placing labels.
|
|
|
|
Ownership of the rule is transferred to the settings.
|
|
|
|
.. seealso:: :py:func:`rules`
|
|
|
|
.. seealso:: :py:func:`setRules`
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
void setRules( const QList< QgsAbstractLabelingEngineRule * > &rules /Transfer/ );
|
|
%Docstring
|
|
Sets the labeling engine ``rules`` which must be satifisfied
|
|
while placing labels.
|
|
|
|
Ownership of the rules are transferred to the settings.
|
|
|
|
.. seealso:: :py:func:`addRule`
|
|
|
|
.. seealso:: :py:func:`rules`
|
|
|
|
.. versionadded:: 3.40
|
|
%End
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/labeling/qgslabelingenginesettings.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|