QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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
37class CORE_EXPORT QgsLegendSettings
38{
39 public:
41
47 void setTitle( const QString &t ) { mTitle = t; }
48
54 QString title() const { return mTitle; }
55
60 Qt::AlignmentFlag titleAlignment() const { return mTitleAlignment; }
61
66 void setTitleAlignment( Qt::AlignmentFlag alignment ) { mTitleAlignment = alignment; }
67
74
80 QgsLegendStyle style( QgsLegendStyle::Style s ) const { return mStyleMap.value( s ); }
81
87 void setStyle( QgsLegendStyle::Style s, const QgsLegendStyle &style ) { mStyleMap[s] = style; }
88
95 double boxSpace() const {return mBoxSpace;}
96
103 void setBoxSpace( double s ) {mBoxSpace = s;}
104
113 void setWrapChar( const QString &t ) {mWrapChar = t;}
114
123 QString wrapChar() const {return mWrapChar;}
124
130 double columnSpace() const {return mColumnSpace;}
131
137 void setColumnSpace( double s ) { mColumnSpace = s;}
138
147 int columnCount() const { return mColumnCount; }
148
157 void setColumnCount( int c ) { mColumnCount = c;}
158
164 bool splitLayer() const { return mSplitLayer; }
165
171 void setSplitLayer( bool s ) { mSplitLayer = s;}
172
180 bool equalColumnWidth() const { return mEqualColumnWidth; }
181
189 void setEqualColumnWidth( bool s ) { mEqualColumnWidth = s;}
190
197 Q_DECL_DEPRECATED QColor fontColor() const SIP_DEPRECATED;
198
205 Q_DECL_DEPRECATED void setFontColor( const QColor &c ) SIP_DEPRECATED;
206
213 Q_DECL_DEPRECATED QColor layerFontColor() const SIP_DEPRECATED;
214
222 Q_DECL_DEPRECATED void setLayerFontColor( const QColor &fontColor ) SIP_DEPRECATED;
223
229 QSizeF symbolSize() const {return mSymbolSize;}
230
236 void setSymbolSize( QSizeF s ) {mSymbolSize = s;}
237
244 double maximumSymbolSize() const {return mMaxSymbolSize; }
245
254 void setMaximumSymbolSize( double size ) { mMaxSymbolSize = size;}
255
262 double minimumSymbolSize() const {return mMinSymbolSize; }
263
272 void setMinimumSymbolSize( double size ) { mMinSymbolSize = size;}
273
282 void setSymbolAlignment( Qt::AlignmentFlag alignment ) { mSymbolAlignment = alignment; }
283
292 Qt::AlignmentFlag symbolAlignment() const { return mSymbolAlignment; }
293
300 bool drawRasterStroke() const { return mRasterSymbolStroke; }
301
309 void setDrawRasterStroke( bool enabled ) { mRasterSymbolStroke = enabled; }
310
318 QColor rasterStrokeColor() const { return mRasterStrokeColor; }
319
328 void setRasterStrokeColor( const QColor &color ) { mRasterStrokeColor = color; }
329
337 double rasterStrokeWidth() const { return mRasterStrokeWidth; }
338
347 void setRasterStrokeWidth( double width ) { mRasterStrokeWidth = width; }
348
354 QSizeF wmsLegendSize() const {return mWmsLegendSize;}
355
361 void setWmsLegendSize( QSizeF s ) {mWmsLegendSize = s;}
362
370 void setSynchronousLegendRequests( bool b ) {mSynchronousLegendRequests = b;}
371
379 bool synchronousLegendRequests() const {return mSynchronousLegendRequests;}
380
387 Q_DECL_DEPRECATED double lineSpacing() const SIP_DEPRECATED { return mLineSpacing; }
388
395 Q_DECL_DEPRECATED void setLineSpacing( double s );
396
400 Q_DECL_DEPRECATED double mmPerMapUnit() const SIP_DEPRECATED;
401
405 Q_DECL_DEPRECATED void setMmPerMapUnit( double mmPerMapUnit ) SIP_DEPRECATED;
406
410 Q_DECL_DEPRECATED bool useAdvancedEffects() const SIP_DEPRECATED;
411
415 Q_DECL_DEPRECATED void setUseAdvancedEffects( bool use ) SIP_DEPRECATED;
416
423 Q_DECL_DEPRECATED double mapScale() const SIP_DEPRECATED;
424
431 Q_DECL_DEPRECATED void setMapScale( double scale ) SIP_DEPRECATED;
432
438 Q_DECL_DEPRECATED double mapUnitsPerPixel() const SIP_DEPRECATED;
439
445 Q_DECL_DEPRECATED void setMapUnitsPerPixel( double mapUnitsPerPixel ) SIP_DEPRECATED;
446
450 Q_DECL_DEPRECATED int dpi() const SIP_DEPRECATED;
451
455 Q_DECL_DEPRECATED void setDpi( int dpi ) SIP_DEPRECATED;
456
457// utility functions
458
472 QStringList evaluateItemText( const QString &text, const QgsExpressionContext &context ) const;
473
478 QStringList splitStringForWrapping( const QString &stringToSplt ) const;
479
484 void drawText( QPainter *p, double x, double y, const QString &text, const QFont &font ) const;
485
496 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;
497
499 QFont scaledFontPixelSize( const QFont &font ) const;
500
502 double pixelFontSize( double pointSize ) const;
503
505 double textWidthMillimeters( const QFont &font, const QString &text ) const;
506
508 double fontHeightCharacterMM( const QFont &font, QChar c ) const;
509
511 double fontAscentMillimeters( const QFont &font ) const;
512
514 double fontDescentMillimeters( const QFont &font ) const;
515
520 Qgis::LegendJsonRenderFlags jsonRenderFlags() const;
521
526 void setJsonRenderFlags( const Qgis::LegendJsonRenderFlags &jsonRenderFlags );
527
528 private:
529
530 QString mTitle;
531
533 Qt::AlignmentFlag mTitleAlignment = Qt::AlignLeft;
534
535 QString mWrapChar;
536
538 qreal mBoxSpace = 2;
539
541 QSizeF mSymbolSize;
542
544 double mMaxSymbolSize = 0.0;
545
547 double mMinSymbolSize = 0.0;
548
550 QSizeF mWmsLegendSize;
551
553 bool mSynchronousLegendRequests = false;
554
556 double mLineSpacing = 1;
557
559 double mColumnSpace = 2;
560
562 int mColumnCount = 1;
563
565 bool mSplitLayer = false;
566
568 bool mEqualColumnWidth = false;
569
570 bool mRasterSymbolStroke = true;
571 QColor mRasterStrokeColor;
572 double mRasterStrokeWidth = 0.0;
573
574 QMap<QgsLegendStyle::Style, QgsLegendStyle> mStyleMap;
575
577 double mMmPerMapUnit = 1;
578
580 bool mUseAdvancedEffects = true;
581
583 double mMapScale = 1;
584
586 int mDpi = 96;
587
589 Qt::AlignmentFlag mSymbolAlignment = Qt::AlignLeft;
590
592 Qgis::LegendJsonRenderFlags mJsonRenderFlags;
593};
594
595
596
597#endif // QGSLEGENDSETTINGS_H
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:54
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...
void setSynchronousLegendRequests(bool b)
Sets whether to request legend graphics synchronously.
bool synchronousLegendRequests() const
Returns whether to request legend graphics synchronously.
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