QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgslayoutitempolygon.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutitempolygon.h
3 begin : March 2016
4 copyright : (C) 2016 Paul Blottiere, Oslandia
5 email : paul dot blottiere at oslandia dot com
6 ***************************************************************************/
7
8/***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
17#ifndef QGSLAYOUTITEMPOLYGON_H
18#define QGSLAYOUTITEMPOLYGON_H
19
20#include "qgis_core.h"
22
23class QgsFillSymbol;
24
31{
32 Q_OBJECT
33
34 public:
35
40
45 QgsLayoutItemPolygon( const QPolygonF &polygon, QgsLayout *layout );
46
48
54 static QgsLayoutItemPolygon *create( QgsLayout *layout ) SIP_FACTORY;
55
56 int type() const override;
57 QIcon icon() const override;
58 QString displayName() const override;
59 bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
60 QgsLayoutItem::Flags itemFlags() const override;
61 QgsGeometry clipPath() const override;
62
67 QgsFillSymbol *symbol();
68
74 void setSymbol( QgsFillSymbol *symbol );
75
76 protected:
77 bool _addNode( int indexPoint, QPointF newPoint, double radius ) override;
78 bool _removeNode( int nodeIndex ) override;
79 void _draw( QgsLayoutItemRenderContext &context, const QStyleOptionGraphicsItem *itemStyle = nullptr ) override;
80 void _readXmlStyle( const QDomElement &elmt, const QgsReadWriteContext &context ) override;
81 void _writeXmlStyle( QDomDocument &doc, QDomElement &elmt, const QgsReadWriteContext &context ) const override;
82
83 private:
84
86 std::unique_ptr<QgsFillSymbol> mPolygonStyleSymbol;
88 void createDefaultPolygonStyleSymbol();
89
94 void refreshSymbol();
95};
96
97#endif // QGSLAYOUTITEMPOLYGON_H
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
Definition: qgsfillsymbol.h:30
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:164
Layout item for node based polygon shapes.
~QgsLayoutItemPolygon() override
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition: qgslayoutitem.h:45
virtual QgsGeometry clipPath() const
Returns the clipping path generated by this item, in layout coordinates.
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified style entity visitor, causing it to visit all style entities associated with th...
int type() const override
Returns a unique graphics item type identifier.
virtual QString displayName() const
Gets item display name.
virtual QIcon icon() const
Returns the item's icon.
virtual Flags itemFlags() const
Returns the item's flags, which indicate how the item behaves.
An abstract layout item that provides generic methods for node based shapes such as polygon or polyli...
virtual bool _removeNode(int nodeIndex)=0
Method called in removeNode.
virtual void _writeXmlStyle(QDomDocument &doc, QDomElement &elmt, const QgsReadWriteContext &context) const =0
Method called in writeXml.
virtual void _readXmlStyle(const QDomElement &elmt, const QgsReadWriteContext &context)=0
Method called in readXml.
virtual void _draw(QgsLayoutItemRenderContext &context, const QStyleOptionGraphicsItem *itemStyle=nullptr)=0
Method called in paint.
virtual bool _addNode(int nodeIndex, QPointF newNode, double radius)=0
Method called in addNode.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:51
The class is used as a container of context for various read/write operations on other objects.
An interface for classes which can visit style entity (e.g.
#define SIP_FACTORY
Definition: qgis_sip.h:76