QGIS API Documentation  3.23.0-Master (eb871beae0)
qgslegendstyle.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslegendstyle.h
3  -------------------
4  begin : March 2013
5  copyright : (C) 2013 by Radim Blazek
6  email : radim[email protected]
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSLEGENDSTYLE_H
19 #define QGSLEGENDSTYLE_H
20 
21 #include <QFont>
22 #include <QMap>
23 #include <QString>
24 #include <QDomElement>
25 #include <QDomDocument>
26 
27 #include "qgis_core.h"
28 #include "qgis_sip.h"
29 #include "qgsreadwritecontext.h"
30 
35 class CORE_EXPORT QgsLegendStyle
36 {
37  public:
38 
40  enum Style
41  {
49  };
50 
51  // TODO QGIS 4.0 - use Qt enum instead
52 
54  enum Side
55  {
56  Top = 0,
57  Bottom = 1,
58  Left = 2,
59  Right = 3,
60  };
61 
63 
68  QFont font() const { return mFont; }
69 
74  void setFont( const QFont &font ) { mFont = font; }
75 
82  SIP_SKIP QFont &rfont() { return mFont; }
83 
91  double margin( Side side ) { return mMarginMap.value( side ); }
92 
100  void setMargin( Side side, double margin ) { mMarginMap[side] = margin; }
101 
106  void setMargin( double margin );
107 
114  Qt::Alignment alignment() const { return mAlignment; }
115 
122  void setAlignment( Qt::Alignment alignment ) { mAlignment = alignment; }
123 
130  double indent() { return mIndent; }
131 
138  void setIndent( double indent ) { mIndent = indent; }
139 
144  void writeXml( const QString &name, QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const;
145 
150  void readXml( const QDomElement &elem, const QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() );
151 
160  static QString styleName( Style s );
161 
166  static Style styleFromName( const QString &styleName );
167 
172  static QString styleLabel( Style s );
173 
174  private:
175  QFont mFont;
176  QMap<Side, double> mMarginMap;
177  Qt::Alignment mAlignment = Qt::AlignLeft;
178  double mIndent = 0;
179 };
180 
181 #endif
Contains detailed styling information relating to how a layout legend should be rendered.
double margin(Side side)
Returns the margin (in mm) for the specified side of the component.
double indent()
Returns the indent (in mm) of a group or subgroup.
void setIndent(double indent)
Sets the indent (in mm) of a group or subgroup.
QFont & rfont()
Returns a modifiable reference to the component's font.
Qt::Alignment alignment() const
Returns the alignment for the legend component.
void setAlignment(Qt::Alignment alignment)
Sets the alignment for the legend component.
QFont font() const
Returns the font used for rendering this legend component.
void setMargin(Side side, double margin)
Sets the margin (in mm) for the specified side of the component.
Side
Margin sides.
Style
Component of legends which can be styled.
@ Group
Legend group title.
@ Symbol
Symbol icon (excluding label)
@ Undefined
Should not happen, only if corrupted project file.
@ Subgroup
Legend subgroup title.
@ Title
Legend title.
@ Hidden
Special style, item is hidden including margins around.
@ SymbolLabel
Symbol label (excluding icon)
void setFont(const QFont &font)
Sets the font used for rendering this legend component.
The class is used as a container of context for various read/write operations on other objects.
#define SIP_SKIP
Definition: qgis_sip.h:126