QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
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
377 void setSynchronousLegendRequests( bool b ) {mSynchronousLegendRequests = b;}
378
386 bool synchronousLegendRequests() const {return mSynchronousLegendRequests;}
387
394 Q_DECL_DEPRECATED double lineSpacing() const SIP_DEPRECATED { return mLineSpacing; }
395
402 Q_DECL_DEPRECATED void setLineSpacing( double s );
403
407 Q_DECL_DEPRECATED double mmPerMapUnit() const SIP_DEPRECATED;
408
412 Q_DECL_DEPRECATED void setMmPerMapUnit( double mmPerMapUnit ) SIP_DEPRECATED;
413
417 Q_DECL_DEPRECATED bool useAdvancedEffects() const SIP_DEPRECATED;
418
422 Q_DECL_DEPRECATED void setUseAdvancedEffects( bool use ) SIP_DEPRECATED;
423
430 Q_DECL_DEPRECATED double mapScale() const SIP_DEPRECATED;
431
438 Q_DECL_DEPRECATED void setMapScale( double scale ) SIP_DEPRECATED;
439
445 Q_DECL_DEPRECATED double mapUnitsPerPixel() const SIP_DEPRECATED;
446
452 Q_DECL_DEPRECATED void setMapUnitsPerPixel( double mapUnitsPerPixel ) SIP_DEPRECATED;
453
457 Q_DECL_DEPRECATED int dpi() const SIP_DEPRECATED;
458
462 Q_DECL_DEPRECATED void setDpi( int dpi ) SIP_DEPRECATED;
463
464// utility functions
465
479 QStringList evaluateItemText( const QString &text, const QgsExpressionContext &context ) const;
480
485 QStringList splitStringForWrapping( const QString &stringToSplt ) const;
486
491 void drawText( QPainter *p, double x, double y, const QString &text, const QFont &font ) const;
492
503 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;
504
506 QFont scaledFontPixelSize( const QFont &font ) const;
507
509 double pixelFontSize( double pointSize ) const;
510
512 double textWidthMillimeters( const QFont &font, const QString &text ) const;
513
515 double fontHeightCharacterMM( const QFont &font, QChar c ) const;
516
518 double fontAscentMillimeters( const QFont &font ) const;
519
521 double fontDescentMillimeters( const QFont &font ) const;
522
523 private:
524
525 QString mTitle;
526
528 Qt::AlignmentFlag mTitleAlignment = Qt::AlignLeft;
529
530 QString mWrapChar;
531
533 qreal mBoxSpace = 2;
534
536 QSizeF mSymbolSize;
537
539 double mMaxSymbolSize = 0.0;
540
542 double mMinSymbolSize = 0.0;
543
545 QSizeF mWmsLegendSize;
546
548 bool mSynchronousLegendRequests = false;
549
551 double mLineSpacing = 1;
552
554 double mColumnSpace = 2;
555
557 int mColumnCount = 1;
558
560 bool mSplitLayer = false;
561
563 bool mEqualColumnWidth = false;
564
565 bool mRasterSymbolStroke = true;
566 QColor mRasterStrokeColor;
567 double mRasterStrokeWidth = 0.0;
568
569 QMap<QgsLegendStyle::Style, QgsLegendStyle> mStyleMap;
570
572 double mMmPerMapUnit = 1;
573
575 bool mUseAdvancedEffects = true;
576
578 double mMapScale = 1;
579
581 int mDpi = 96;
582
584 Qt::AlignmentFlag mSymbolAlignment = Qt::AlignLeft;
585};
586
587
588
589#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...
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