Skip to content

Commit

Permalink
Move QgsLabelPosition out to own file
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Feb 23, 2021
1 parent f083876 commit a513f5a
Show file tree
Hide file tree
Showing 6 changed files with 239 additions and 189 deletions.
87 changes: 87 additions & 0 deletions python/core/auto_generated/labeling/qgslabelposition.sip.in
@@ -0,0 +1,87 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/labeling/qgslabelposition.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/





class QgsLabelPosition
{
%Docstring
Represents the calculated placement of a map label.
%End

%TypeHeaderCode
#include "qgslabelposition.h"
%End
public:

QgsLabelPosition( QgsFeatureId id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString(),
const QgsGeometry &labelGeometry = QgsGeometry(), bool isUnplaced = false );
%Docstring
Constructor for QgsLabelPosition.

:param id: associated feature ID
:param r: label rotation in degrees clockwise
:param corners: corner points of label bounding box, in map units
:param rect: label bounding box, in map units
:param w: width of label, in map units
:param h: height of label, in map units
:param layer: ID of associated map layer
:param labeltext: text rendered for label
:param labelfont: font used to render label
:param upside_down: ``True`` if label is upside down
:param diagram: ``True`` if label is a diagram
:param pinned: ``True`` if label has pinned placement
:param providerId: ID of associated label provider
:param labelGeometry: polygon geometry of label boundary
:param isUnplaced: set to ``True`` if label was unplaced (e.g. due to collisions with other labels)
%End

QgsLabelPosition();
%Docstring
Constructor for QgsLabelPosition
%End

QgsFeatureId featureId;

double rotation;

QVector< QgsPointXY > cornerPoints;
QgsRectangle labelRect;

QgsGeometry labelGeometry;

double width;

double height;

QString layerID;

QString labelText;

QFont labelFont;

bool upsideDown;

bool isDiagram;

bool isPinned;

QString providerID;

bool isUnplaced;
};

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/labeling/qgslabelposition.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
68 changes: 0 additions & 68 deletions python/core/auto_generated/labeling/qgspallabeling.sip.in
Expand Up @@ -12,74 +12,6 @@



class QgsLabelPosition
{
%Docstring
Represents the calculated placement of a map label.
%End

%TypeHeaderCode
#include "qgspallabeling.h"
%End
public:

QgsLabelPosition( QgsFeatureId id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString(),
const QgsGeometry &labelGeometry = QgsGeometry(), bool isUnplaced = false );
%Docstring
Constructor for QgsLabelPosition.

:param id: associated feature ID
:param r: label rotation in degrees clockwise
:param corners: corner points of label bounding box, in map units
:param rect: label bounding box, in map units
:param w: width of label, in map units
:param h: height of label, in map units
:param layer: ID of associated map layer
:param labeltext: text rendered for label
:param labelfont: font used to render label
:param upside_down: ``True`` if label is upside down
:param diagram: ``True`` if label is a diagram
:param pinned: ``True`` if label has pinned placement
:param providerId: ID of associated label provider
:param labelGeometry: polygon geometry of label boundary
:param isUnplaced: set to ``True`` if label was unplaced (e.g. due to collisions with other labels)
%End

QgsLabelPosition();
%Docstring
Constructor for QgsLabelPosition
%End

QgsFeatureId featureId;

double rotation;

QVector< QgsPointXY > cornerPoints;
QgsRectangle labelRect;

QgsGeometry labelGeometry;

double width;

double height;

QString layerID;

QString labelText;

QFont labelFont;

bool upsideDown;

bool isDiagram;

bool isPinned;

QString providerID;

bool isUnplaced;
};

class QgsPalLayerSettings
{
%Docstring
Expand Down
1 change: 1 addition & 0 deletions python/core/core_auto.sip
Expand Up @@ -329,6 +329,7 @@
%Include auto_generated/labeling/qgslabelingenginesettings.sip
%Include auto_generated/labeling/qgslabellinesettings.sip
%Include auto_generated/labeling/qgslabelobstaclesettings.sip
%Include auto_generated/labeling/qgslabelposition.sip
%Include auto_generated/labeling/qgslabelsearchtree.sip
%Include auto_generated/labeling/qgslabelthinningsettings.sip
%Include auto_generated/labeling/qgspallabeling.sip
Expand Down
1 change: 1 addition & 0 deletions src/core/CMakeLists.txt
Expand Up @@ -1217,6 +1217,7 @@ set(QGIS_CORE_HDRS
labeling/qgslabelingenginesettings.h
labeling/qgslabellinesettings.h
labeling/qgslabelobstaclesettings.h
labeling/qgslabelposition.h
labeling/qgslabelsearchtree.h
labeling/qgslabelthinningsettings.h
labeling/qgspallabeling.h
Expand Down
149 changes: 149 additions & 0 deletions src/core/labeling/qgslabelposition.h
@@ -0,0 +1,149 @@
/***************************************************************************
qgslabelposition.h
-------------------
begin : February 2021
copyright : (C) Nyall Dawson
email : nyall dot dawson at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/

#ifndef QGSLABELPOSITION_H
#define QGSLABELPOSITION_H

#include "qgis_core.h"
#include "qgis_sip.h"

#include "qgspointxy.h"
#include "qgsrectangle.h"
#include "qgsgeometry.h"

#include <QFont>

/**
* \ingroup core
* \class QgsLabelPosition
* \brief Represents the calculated placement of a map label.
*/
class CORE_EXPORT QgsLabelPosition
{
public:

/**
* Constructor for QgsLabelPosition.
* \param id associated feature ID
* \param r label rotation in degrees clockwise
* \param corners corner points of label bounding box, in map units
* \param rect label bounding box, in map units
* \param w width of label, in map units
* \param h height of label, in map units
* \param layer ID of associated map layer
* \param labeltext text rendered for label
* \param labelfont font used to render label
* \param upside_down TRUE if label is upside down
* \param diagram TRUE if label is a diagram
* \param pinned TRUE if label has pinned placement
* \param providerId ID of associated label provider
* \param labelGeometry polygon geometry of label boundary
* \param isUnplaced set to TRUE if label was unplaced (e.g. due to collisions with other labels)
*/
QgsLabelPosition( QgsFeatureId id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString(),
const QgsGeometry &labelGeometry = QgsGeometry(), bool isUnplaced = false )
: featureId( id )
, rotation( r )
, cornerPoints( corners )
, labelRect( rect )
, labelGeometry( labelGeometry )
, width( w )
, height( h )
, layerID( layer )
, labelText( labeltext )
, labelFont( labelfont )
, upsideDown( upside_down )
, isDiagram( diagram )
, isPinned( pinned )
, providerID( providerId )
, isUnplaced( isUnplaced )
{}

//! Constructor for QgsLabelPosition
QgsLabelPosition() = default;

/**
* ID of feature associated with this label.
*/
QgsFeatureId featureId = FID_NULL;

/**
* Rotation of label, in degrees clockwise.
*/
double rotation = 0;

QVector< QgsPointXY > cornerPoints;
QgsRectangle labelRect;

/**
* A polygon geometry representing the label's bounds in map coordinates.
* \since QGIS 3.4.9
*/
QgsGeometry labelGeometry;

/**
* Width of label bounding box, in map units.
*/
double width = 0;

/**
* Heeght of label bounding box, in map units.
*/
double height = 0;

/**
* ID of associated map layer.
*/
QString layerID;

/**
* String shown in label.
*/
QString labelText;

/**
* Font which the label is rendered using.
*/
QFont labelFont;

/**
* TRUE if label is upside down.
*/
bool upsideDown = false;

/**
* TRUE if label is a diagram.
*/
bool isDiagram = false;

/**
* TRUE if label position has been pinned.
*/
bool isPinned = false;

/**
* ID of the associated label provider.
* \since QGIS 2.14
*/
QString providerID;

/**
* TRUE if label position corresponds to an unplaced label.
* \since QGIS 3.10
*/
bool isUnplaced = false;
};

#endif // QGSLABELPOSITION_H

0 comments on commit a513f5a

Please sign in to comment.