QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
src
core
layout
qgslayoutitemnodeitem.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgslayoutitemnodeitem.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 QGSLAYOUTITEMNODEITEM_H
18
#define QGSLAYOUTITEMNODEITEM_H
19
20
#include "qgis_core.h"
21
#include "
qgslayoutitem.h
"
22
29
class
CORE_EXPORT
QgsLayoutNodesItem
:
public
QgsLayoutItem
30
{
31
Q_OBJECT
32
33
public
:
34
39
void
setNodes(
const
QPolygonF &nodes );
40
45
QPolygonF nodes()
const
{
return
mPolygon; }
46
55
bool
addNode( QPointF point,
bool
checkArea =
true
,
double
radius = 10 );
56
60
void
setDisplayNodes(
bool
display =
true
) { mDrawNodes = display; }
61
67
bool
moveNode(
int
index, QPointF node );
68
77
int
nodeAtPosition( QPointF point,
bool
searchInRadius =
true
,
double
radius = 10 )
const
;
78
85
bool
nodePosition(
int
index, QPointF &position )
const
;
86
90
bool
removeNode(
int
index );
91
93
int
nodesSize()
const
{
return
mPolygon.size(); }
94
98
bool
setSelectedNode(
int
index );
99
103
int
selectedNode()
const
{
return
mSelectedNode; }
104
108
void
deselectNode() { mSelectedNode = -1; }
109
110
// Depending on the symbol style, the bounding rectangle can be larger than the shape
111
QRectF boundingRect()
const override
;
112
113
// Reimplement estimatedFrameBleed, since frames on shapes are drawn using symbology
114
// rather than the item's pen
115
double
estimatedFrameBleed
()
const override
;
116
117
protected
:
118
122
QgsLayoutNodesItem
(
QgsLayout
*layout );
123
127
QgsLayoutNodesItem
(
const
QPolygonF &polygon,
QgsLayout
*layout );
128
129
void
draw
(
QgsLayoutItemRenderContext
&context )
override
;
130
131
bool
writePropertiesToElement
( QDomElement &element, QDomDocument &document,
const
QgsReadWriteContext
&context )
const override
;
132
bool
readPropertiesFromElement
(
const
QDomElement &element,
const
QDomDocument &document,
const
QgsReadWriteContext
&context )
override
;
133
135
QPolygonF mPolygon;
136
138
double
mMaxSymbolBleed = 0.0;
139
141
virtual
bool
_addNode(
int
nodeIndex, QPointF newNode,
double
radius ) = 0;
142
144
virtual
bool
_removeNode(
int
nodeIndex ) = 0;
145
147
virtual
void
_draw(
QgsLayoutItemRenderContext
&context,
const
QStyleOptionGraphicsItem *itemStyle =
nullptr
) = 0;
148
150
virtual
void
_readXmlStyle(
const
QDomElement &elmt,
const
QgsReadWriteContext
&context ) = 0;
151
153
virtual
void
_writeXmlStyle( QDomDocument &doc, QDomElement &elmt,
const
QgsReadWriteContext
&context )
const
= 0;
154
159
void
rescaleToFitBoundingBox();
160
162
double
computeDistance( QPointF pt1, QPointF pt2 )
const
;
163
165
void
updateSceneRect();
166
168
QRectF mCurrentRectangle;
169
170
protected
slots:
171
176
virtual
void
updateBoundingRect();
177
178
private
:
179
180
void
init();
181
183
int
mSelectedNode = -1;
184
189
bool
mDrawNodes =
false
;
190
192
void
drawNodes(
QgsLayoutItemRenderContext
&context )
const
;
193
void
drawSelectedNode(
QgsLayoutItemRenderContext
&context )
const
;
194
195
};
196
197
#endif // QGSLAYOUTITEMNODEITEM_H
QgsLayoutItem::writePropertiesToElement
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
Definition:
qgslayoutitem.cpp:1326
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition:
qgsreadwritecontext.h:34
QgsLayoutItemRenderContext
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition:
qgslayoutitem.h:44
QgsLayoutItem::readPropertiesFromElement
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
Definition:
qgslayoutitem.cpp:1331
QgsLayoutItem::draw
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
QgsLayoutItem::estimatedFrameBleed
virtual double estimatedFrameBleed() const
Returns the estimated amount the item's frame bleeds outside the item's actual rectangle.
Definition:
qgslayoutitem.cpp:937
qgslayoutitem.h
QgsLayoutItem
Base class for graphical items within a QgsLayout.
Definition:
qgslayoutitem.h:112
QgsLayout
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition:
qgslayout.h:50
QgsLayoutNodesItem
An abstract layout item that provides generic methods for node based shapes such as polygon or polyli...
Definition:
qgslayoutitemnodeitem.h:29
Generated on Sun Sep 11 2022 00:03:17 for QGIS API Documentation by
1.8.17