QGIS API Documentation  3.22.4-Białowieża (ce8e65e95e)
qgslegendpatchshape.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslegendpatchshape.h
3  -------------------
4 begin : April 2020
5 copyright : (C) 2020 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
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 #ifndef QGSLEGENDPATCHSHAPE_H
18 #define QGSLEGENDPATCHSHAPE_H
19 
20 #include "qgis_core.h"
21 #include "qgis_sip.h"
22 #include "qgis.h"
23 #include "qgsgeometry.h"
24 
26 
33 class CORE_EXPORT QgsLegendPatchShape
34 {
35  public:
36 
43  QgsLegendPatchShape() = default;
44 
57  const QgsGeometry &geometry,
58  bool preserveAspectRatio = true );
59 
64  bool isNull() const;
65 
71  Qgis::SymbolType symbolType() const;
72 
78  void setSymbolType( Qgis::SymbolType type );
79 
85  QgsGeometry geometry() const;
86 
105  void setGeometry( const QgsGeometry &geometry );
106 
113  bool preserveAspectRatio() const;
114 
123  void setPreserveAspectRatio( bool preserve );
124 
134  bool scaleToOutputSize() const;
135 
145  void setScaleToOutputSize( bool scale );
146 
154  QgsGeometry scaledGeometry( QSizeF size ) const;
155 
161  QList< QList< QPolygonF > > toQPolygonF( Qgis::SymbolType type, QSizeF size ) const;
162 
167  void readXml( const QDomElement &element, const QgsReadWriteContext &context );
168 
173  void writeXml( QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context ) const;
174 
175  private:
177  QgsGeometry mGeometry;
178  bool mPreserveAspectRatio = true;
179  bool mScaleToTargetSize = true;
180 
181 };
182 
183 #endif // QGSLEGENDPATCHSHAPE_H
SymbolType
Symbol types.
Definition: qgis.h:169
@ Fill
Fill symbol.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:125
Represents a patch shape for use in map legends.
QgsLegendPatchShape()=default
Constructor for a null QgsLegendPatchShape.
The class is used as a container of context for various read/write operations on other objects.