QGIS API Documentation 3.29.0-Master (8c80f25a4f)
qgslegendsettings.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslegendsettings.h
3 --------------------------------------
4 Date : July 2014
5 Copyright : (C) 2014 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
16#ifndef QGSLEGENDSETTINGS_H
17#define QGSLEGENDSETTINGS_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
21#include <QColor>
22#include <QSizeF>
23
24class QRectF;
25
26#include "qgslegendstyle.h"
27
29
38class CORE_EXPORT QgsLegendSettings
39{
40 public:
42
48 void setTitle( const QString &t ) { mTitle = t; }
49
55 QString title() const { return mTitle; }
56
61 Qt::AlignmentFlag titleAlignment() const { return mTitleAlignment; }
62
67 void setTitleAlignment( Qt::AlignmentFlag alignment ) { mTitleAlignment = alignment; }
68
75
81 QgsLegendStyle style( QgsLegendStyle::Style s ) const { return mStyleMap.value( s ); }
82
88 void setStyle( QgsLegendStyle::Style s, const QgsLegendStyle &style ) { mStyleMap[s] = style; }
89
96 double boxSpace() const {return mBoxSpace;}
97
104 void setBoxSpace( double s ) {mBoxSpace = s;}
105
114 void setWrapChar( const QString &t ) {mWrapChar = t;}
115
124 QString wrapChar() const {return mWrapChar;}
125
131 double columnSpace() const {return mColumnSpace;}
132
138 void setColumnSpace( double s ) { mColumnSpace = s;}
139
148 int columnCount() const { return mColumnCount; }
149
158 void setColumnCount( int c ) { mColumnCount = c;}
159
165 bool splitLayer() const { return mSplitLayer; }
166
172 void setSplitLayer( bool s ) { mSplitLayer = s;}
173
181 bool equalColumnWidth() const { return mEqualColumnWidth; }
182
190 void setEqualColumnWidth( bool s ) { mEqualColumnWidth = s;}
191
198 Q_DECL_DEPRECATED QColor fontColor() const SIP_DEPRECATED;
199
206 Q_DECL_DEPRECATED void setFontColor( const QColor &c ) SIP_DEPRECATED;
207
214 Q_DECL_DEPRECATED QColor layerFontColor() const SIP_DEPRECATED;
215
223 Q_DECL_DEPRECATED void setLayerFontColor( const QColor &fontColor ) SIP_DEPRECATED;
224
230 QSizeF symbolSize() const {return mSymbolSize;}
231
237 void setSymbolSize( QSizeF s ) {mSymbolSize = s;}
238
245 double maximumSymbolSize() const {return mMaxSymbolSize; }
246
255 void setMaximumSymbolSize( double size ) { mMaxSymbolSize = size;}
256
263 double minimumSymbolSize() const {return mMinSymbolSize; }
264
273 void setMinimumSymbolSize( double size ) { mMinSymbolSize = size;}
274
283 void setSymbolAlignment( Qt::AlignmentFlag alignment ) { mSymbolAlignment = alignment; }
284
293 Qt::AlignmentFlag symbolAlignment() const { return mSymbolAlignment; }
294
302 bool drawRasterStroke() const { return mRasterSymbolStroke; }
303
312 void setDrawRasterStroke( bool enabled ) { mRasterSymbolStroke = enabled; }
313
322 QColor rasterStrokeColor() const { return mRasterStrokeColor; }
323
333 void setRasterStrokeColor( const QColor &color ) { mRasterStrokeColor = color; }
334
343 double rasterStrokeWidth() const { return mRasterStrokeWidth; }
344
354 void setRasterStrokeWidth( double width ) { mRasterStrokeWidth = width; }
355
361 QSizeF wmsLegendSize() const {return mWmsLegendSize;}
362
368 void setWmsLegendSize( QSizeF s ) {mWmsLegendSize = s;}
369
376 Q_DECL_DEPRECATED double lineSpacing() const SIP_DEPRECATED { return mLineSpacing; }
377
384 Q_DECL_DEPRECATED void setLineSpacing( double s );
385
389 Q_DECL_DEPRECATED double mmPerMapUnit() const SIP_DEPRECATED;
390
394 Q_DECL_DEPRECATED void setMmPerMapUnit( double mmPerMapUnit ) SIP_DEPRECATED;
395
399 Q_DECL_DEPRECATED bool useAdvancedEffects() const SIP_DEPRECATED;
400
404 Q_DECL_DEPRECATED void setUseAdvancedEffects( bool use ) SIP_DEPRECATED;
405
412 Q_DECL_DEPRECATED double mapScale() const SIP_DEPRECATED;
413
420 Q_DECL_DEPRECATED void setMapScale( double scale ) SIP_DEPRECATED;
421
427 Q_DECL_DEPRECATED double mapUnitsPerPixel() const SIP_DEPRECATED;
428
434 Q_DECL_DEPRECATED void setMapUnitsPerPixel( double mapUnitsPerPixel ) SIP_DEPRECATED;
435
439 Q_DECL_DEPRECATED int dpi() const SIP_DEPRECATED;
440
444 Q_DECL_DEPRECATED void setDpi( int dpi ) SIP_DEPRECATED;
445
446// utility functions
447
461 QStringList evaluateItemText( const QString &text, const QgsExpressionContext &context ) const;
462
467 QStringList splitStringForWrapping( const QString &stringToSplt ) const;
468
473 void drawText( QPainter *p, double x, double y, const QString &text, const QFont &font ) const;
474
485 void drawText( QPainter *p, const QRectF &rect, const QString &text, const QFont &font, Qt::AlignmentFlag halignment = Qt::AlignLeft, Qt::AlignmentFlag valignment = Qt::AlignTop, int flags = Qt::TextWordWrap ) const;
486
488 QFont scaledFontPixelSize( const QFont &font ) const;
489
491 double pixelFontSize( double pointSize ) const;
492
494 double textWidthMillimeters( const QFont &font, const QString &text ) const;
495
497 double fontHeightCharacterMM( const QFont &font, QChar c ) const;
498
500 double fontAscentMillimeters( const QFont &font ) const;
501
503 double fontDescentMillimeters( const QFont &font ) const;
504
505 private:
506
507 QString mTitle;
508
510 Qt::AlignmentFlag mTitleAlignment = Qt::AlignLeft;
511
512 QString mWrapChar;
513
515 qreal mBoxSpace = 2;
516
518 QSizeF mSymbolSize;
519
521 double mMaxSymbolSize = 0.0;
522
524 double mMinSymbolSize = 0.0;
525
527 QSizeF mWmsLegendSize;
528
530 double mLineSpacing = 1;
531
533 double mColumnSpace = 2;
534
536 int mColumnCount = 1;
537
539 bool mSplitLayer = false;
540
542 bool mEqualColumnWidth = false;
543
544 bool mRasterSymbolStroke = true;
545 QColor mRasterStrokeColor;
546 double mRasterStrokeWidth = 0.0;
547
548 QMap<QgsLegendStyle::Style, QgsLegendStyle> mStyleMap;
549
551 double mMmPerMapUnit = 1;
552
554 bool mUseAdvancedEffects = true;
555
557 double mMapScale = 1;
558
560 int mDpi = 96;
561
563 Qt::AlignmentFlag mSymbolAlignment = Qt::AlignLeft;
564};
565
566
567
568#endif // QGSLEGENDSETTINGS_H
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
The QgsLegendSettings class stores the appearance and layout settings for legend drawing with QgsLege...
int columnCount() const
Returns the desired minimum number of columns to show in the legend.
void setSymbolAlignment(Qt::AlignmentFlag alignment)
Sets the alignment for placement of legend symbols.
QString wrapChar() const
Returns the string used as a wrapping character.
void setWrapChar(const QString &t)
Sets a string to use as a wrapping character.
void setRasterStrokeColor(const QColor &color)
Sets the stroke color for the stroke drawn around raster symbol items.
void setStyle(QgsLegendStyle::Style s, const QgsLegendStyle &style)
Sets the style for a legend component.
void setColumnSpace(double s)
Sets the margin space between adjacent columns (in millimeters).
QgsLegendStyle style(QgsLegendStyle::Style s) const
Returns the style for a legend component.
void setTitle(const QString &t)
Sets the title for the legend, which will be rendered above all legend items.
bool drawRasterStroke() const
Returns whether a stroke will be drawn around raster symbol items.
void setDrawRasterStroke(bool enabled)
Sets whether a stroke will be drawn around raster symbol items.
QSizeF wmsLegendSize() const
Returns the size (in millimeters) of WMS legend graphics shown in the legend.
double minimumSymbolSize() const
Returns the minimum symbol size (in mm).
double rasterStrokeWidth() const
Returns the stroke width (in millimeters) for the stroke drawn around raster symbol items.
void setColumnCount(int c)
Sets the desired minimum number of columns to show in the legend.
void setTitleAlignment(Qt::AlignmentFlag alignment)
Sets the alignment of the legend title.
Qt::AlignmentFlag titleAlignment() const
Returns the alignment of the legend title.
double maximumSymbolSize() const
Returns the maximum symbol size (in mm).
QString title() const
Returns the title for the legend, which will be rendered above all legend items.
QColor rasterStrokeColor() const
Returns the stroke color for the stroke drawn around raster symbol items.
Q_DECL_DEPRECATED double lineSpacing() const
Returns the line spacing to use between lines of legend text.
void setSplitLayer(bool s)
Sets whether layer components can be split over multiple columns.
double columnSpace() const
Returns the margin space between adjacent columns (in millimeters).
QgsLegendStyle & rstyle(QgsLegendStyle::Style s)
Returns modifiable reference to the style for a legend component.
void setEqualColumnWidth(bool s)
Sets whether all columns should have equal widths.
void setBoxSpace(double s)
Sets the legend box space (in millimeters), which is the empty margin around the inside of the legend...
double boxSpace() const
Returns the legend box space (in millimeters), which is the empty margin around the inside of the leg...
void setMaximumSymbolSize(double size)
Set the maximum symbol size for symbol (in millimeters).
bool splitLayer() const
Returns true if layer components can be split over multiple columns.
void setMinimumSymbolSize(double size)
Set the minimum symbol size for symbol (in millimeters).
void setRasterStrokeWidth(double width)
Sets the stroke width for the stroke drawn around raster symbol items.
Qt::AlignmentFlag symbolAlignment() const
Returns the alignment for placement of legend symbols.
bool equalColumnWidth() const
Returns true if all columns should have equal widths.
void setSymbolSize(QSizeF s)
Sets the default symbol size (in millimeters) used for legend items.
void setWmsLegendSize(QSizeF s)
Sets the desired size (in millimeters) of WMS legend graphics shown in the legend.
Contains detailed styling information relating to how a layout legend should be rendered.
Style
Component of legends which can be styled.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_SKIP
Definition: qgis_sip.h:126