21 #ifndef QGSPALLABELING_H
22 #define QGSPALLABELING_H
37 #include <QFontDatabase>
181 FontLetterSpacing = 28,
182 FontWordSpacing = 29,
186 MultiLineWrapChar = 31,
187 MultiLineHeight = 32,
188 MultiLineAlignment = 33,
192 DirSymbPlacement = 37,
204 BufferJoinStyle = 44,
205 BufferBlendMode = 45,
215 ShapeRotationType = 52,
218 ShapeOffsetUnits = 55,
220 ShapeRadiiUnits = 57,
221 ShapeTransparency = 63,
224 ShapeBorderColor = 59,
225 ShapeBorderWidth = 60,
226 ShapeBorderWidthUnits = 61,
232 ShadowOffsetAngle = 67,
233 ShadowOffsetDist = 68,
234 ShadowOffsetUnits = 69,
236 ShadowRadiusUnits = 71,
237 ShadowTransparency = 72,
240 ShadowBlendMode = 75,
250 CurvedCharAngleInOut = 83,
258 RepeatDistanceUnit = 86,
261 ScaleVisibility = 23,
429 void calculateLabelSize(
const QFontMetricsF* fm, QString text,
double& labelX,
double& labelY,
QgsFeature* f = 0 );
446 bool active,
bool useExpr,
const QString& expr,
const QString& field );
454 QString updateDataDefinedString(
const QString& value );
511 QMap<QgsPalLayerSettings::DataDefinedProperties, QPair<QString, int> >
dataDefinedNames()
const {
return mDataDefinedNames; }
546 bool dataDefinedValEval(
const QString& valType,
550 void parseTextStyle( QFont& labelFont,
554 void parseTextBuffer();
556 void parseTextFormatting();
558 void parseShapeBackground();
560 void parseDropShadow();
593 , mUseOrigin( false )
595 , mRotationOffset( 0.0 )
596 , mUseRotation( false )
598 , mUseCenter( false )
602 , mPictureBuffer( 0.0 )
608 const QString&
text() {
return mText; }
609 void setText(
const QString& text ) { mText = text; }
638 const QPicture*
picture() {
return mPicture; }
692 QList<QgsLabelPosition> labelsAtPosition(
const QgsPoint& p )
const;
694 QList<QgsLabelPosition> labelsWithinRect(
const QgsRectangle& r )
const;
722 void numCandidatePositions(
int& candPoint,
int& candLine,
int& candPolygon );
723 void setNumCandidatePositions(
int candPoint,
int candLine,
int candPolygon );
725 enum Search { Chain, Popmusic_Tabu, Popmusic_Chain, Popmusic_Tabu_Chain, Falp };
727 void setSearchMethod( Search s );
728 Search searchMethod()
const;
732 const QList<QgsLabelCandidate>&
candidates() {
return mCandidates; }
760 static bool staticWillUseLayer(
const QString& layerID );
795 void drawLabelCandidateRect( pal::LabelPosition* lp, QPainter* painter,
const QgsMapToPixel* xform );
814 void loadEngineSettings();
815 void saveEngineSettings();
816 void clearEngineSettings();
825 const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant >& ddValues );
829 const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant >& ddValues );
833 const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant >& ddValues );
837 const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant >& ddValues );
841 const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant >& ddValues );
843 void deleteTemporaryData();
870 #endif // QGSPALLABELING_H
virtual void exit()=0
called when we're done with rendering
Class for parsing and evaluation of expressions (formerly called "search strings").
void setShowingCandidates(bool showing)
void setRotationOffset(double rotation)
virtual void clearActiveLayers()=0
clears all PAL layer settings for registered layers
virtual Q_DECL_DEPRECATED void init(QgsMapRenderer *mp)=0
called when we're going to start with rendering
A rectangle specified with double values.
double maxCurvedCharAngleOut
QString leftDirectionSymbol
QgsExpression * expression
QgsMapUnitScale shapeSizeMapUnitScale
A container class for data source field mapping or expression.
QgsMapUnitScale shadowRadiusMapUnitScale
virtual int prepareLayer(QgsVectorLayer *layer, QStringList &attrNames, QgsRenderContext &ctx)=0
called when starting rendering of a layer
SizeUnit repeatDistanceUnit
const QgsMapSettings * mMapSettings
virtual void clearActiveLayer(const QString &layerID)=0
clears data defined objects from PAL layer settings for a registered layer
const QgsPoint & offset()
virtual QgsPalLayerSettings & layer(const QString &layerName)=0
returns PAL layer settings for a registered layer
A class to query the labeling structure at a given point (small wraper around pal RTree class) ...
void setShowingPartialsLabels(bool showing)
QPainter::CompositionMode bufferBlendMode
double rotationOffset() const
QgsMapUnitScale shadowOffsetMapUnitScale
bool mShowingPartialsLabels
#define Q_NOWARN_DEPRECATED_PUSH
QuadrantPosition quadOffset
virtual void registerFeature(const QString &layerID, QgsFeature &feat, const QgsRenderContext &context=QgsRenderContext())=0
called for every feature
Container of fields for a vector layer.
QgsMapUnitScale repeatDistanceMapUnitScale
MultiLineAlign multilineAlign
void setOffset(QgsPoint point)
virtual int addDiagramLayer(QgsVectorLayer *layer, const QgsDiagramLayerSettings *s)
adds a diagram layer to the labeling engine
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
A non GUI class for rendering a map layer set onto a QPainter.
virtual Q_DECL_DEPRECATED QList< QgsLabelPosition > labelsWithinRect(const QgsRectangle &r)=0
return infos about labels within a given (map) rectangle
double maxCurvedCharAngleIn
bool reverseDirectionSymbol
Qt::PenJoinStyle bufferJoinStyle
void setRotation(double rotation)
QgsMapUnitScale fontSizeMapUnitScale
The QgsMapSettings class contains configuration for rendering of the map.
QgsMapUnitScale shapeBorderWidthMapUnitScale
Perform transforms between map coordinates and device coordinates.
Q_DECL_DEPRECATED void setStoredWithProject(bool store)
QList< QgsPalGeometry * > geometries
const QgsCoordinateTransform * ct
QgsMapUnitScale shapeRadiiMapUnitScale
virtual Q_DECL_DEPRECATED QList< QgsLabelPosition > labelsAtPosition(const QgsPoint &p)=0
return infos about labels at a given (map) position
double rasterCompressFactor
bool bufferSizeInMapUnits
QgsPalLayerSettings mInvalidLayerSettings
virtual QgsLabelingEngineInterface * clone()=0
called when passing engine among map renderers
SizeUnit shapeBorderWidthUnits
QMap< QgsPalLayerSettings::DataDefinedProperties, QPair< QString, int > > mDataDefinedNames
QPainter::CompositionMode blendMode
const QgsPoint & center()
QHash< QString, QgsDiagramLayerSettings > mActiveDiagramLayers
Q_DECL_DEPRECATED bool isStoredWithProject() const
void setUseCenter(bool use)
const QgsMapToPixel * xform
QMap< QgsPalLayerSettings::DataDefinedProperties, QgsDataDefined * > dataDefinedProperties
Map of current data defined properties.
void setUseOrigin(bool use)
bool isShowingPartialsLabels() const
void setText(const QString &text)
void setDpiRatio(double ratio)
QgsMapUnitScale bufferSizeMapUnitScale
const QgsPoint & origin()
QPainter::CompositionMode shapeBlendMode
void setPictureBuffer(double buffer)
SizeUnit shadowOffsetUnits
SizeUnit
Units used for option sizes, before being converted to rendered sizes.
const QList< QgsLabelCandidate > & candidates()
A class to represent a point geometry.
QHash< QString, QgsPalLayerSettings > mActiveLayers
Qt::PenJoinStyle shapeJoinStyle
unsigned int upsidedownLabels
unsigned int placementFlags
#define Q_NOWARN_DEPRECATED_POP
QgsLabelSearchTree * mLabelSearchTree
void setSize(QgsPoint point)
QString rightDirectionSymbol
bool isShowingCandidates() const
void setDrawingOutlineLabels(bool outline)
Contains information about the context of a rendering operation.
const QPicture * picture()
void setShowingShadowRectangles(bool showing)
void setPicture(QPicture *picture)
QgsLabelingResults(const QgsLabelingResults &)
QgsMapUnitScale distMapUnitScale
void setUseRotation(bool use)
virtual void drawLabeling(QgsRenderContext &context)=0
called when the map is drawn and labels should be placed
bool shadowRadiusAlphaOnly
SizeUnit shadowRadiusUnits
QgsLabelCandidate(QRectF r, double c)
bool labelOffsetInMapUnits
double pictureBuffer() const
QPainter::CompositionMode shadowBlendMode
bool isExpression
Is this label made from a expression string eg FieldName || 'mm'.
Class that stores computed placement from labeling engine.
virtual bool willUseLayer(QgsVectorLayer *layer)=0
called to find out whether the layer is used for labeling
bool isShowingAllLabels() const
void setShowingAllLabels(bool showing)
QMap< QgsPalLayerSettings::DataDefinedProperties, QPair< QString, int > > dataDefinedNames() const
Map of data defined enum to names and old-style indecies The QPair contains a new string for layer pr...
bool isShowingShadowRectangles() const
QgsMapUnitScale shapeOffsetMapUnitScale
QList< QgsLabelCandidate > mCandidates
Labeling engine interface.
void setCenter(QgsPoint point)
SizeUnit shapeOffsetUnits
bool isDrawingOutlineLabels() const
virtual void registerDiagramFeature(const QString &layerID, QgsFeature &feat, const QgsRenderContext &context=QgsRenderContext())
called for every diagram feature
Represents a vector layer which manages a vector based data sets.
Maintains current state of more grainular and temporal values when creating/painting component parts ...
RotationType shapeRotationType
QgsMapUnitScale labelOffsetMapUnitScale
QMap< DataDefinedProperties, QVariant > dataDefinedValues
QgsLabelingResults * mResults
const QgsFields * mCurFields
void setOrigin(QgsPoint point)
DirectionSymbols placeDirectionSymbol