QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgslayoutviewtooladdnodeitem.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayoutviewtooladdnodeitem.h
3  --------------------------
4  Date : October 2017
5  Copyright : (C) 2017 Nyall Dawson
6  Email : nyall dot dawson 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 QGSLAYOUTVIEWTOOLADDNODEITEM_H
17 #define QGSLAYOUTVIEWTOOLADDNODEITEM_H
18 
19 #include "qgis_sip.h"
20 #include "qgis_gui.h"
21 #include "qgslayoutviewtool.h"
22 #include <memory>
23 #include <QAbstractGraphicsShapeItem>
24 
31 {
32 
33  Q_OBJECT
34 
35  public:
36 
39 
44  int itemMetadataId() const;
45 
54  void setItemMetadataId( int metadataId );
55 
56  void layoutPressEvent( QgsLayoutViewMouseEvent *event ) override;
57  void layoutMoveEvent( QgsLayoutViewMouseEvent *event ) override;
58  void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ) override;
59  void keyPressEvent( QKeyEvent *event ) override;
60  void deactivate() override;
61 
62  signals:
63 
67  void createdItem();
68 
69  private:
70 
71  int mItemMetadataId = -1;
72 
74  std::unique_ptr< QAbstractGraphicsShapeItem > mRubberBand;
75 
76  QPolygonF mPolygon;
77 
78  void addNode( QPointF scenePoint );
79  void moveTemporaryNode( QPointF scenePoint, Qt::KeyboardModifiers modifiers );
80  void setRubberBandNodes();
81 
82 };
83 
84 #endif // QGSLAYOUTVIEWTOOLADDNODEITEM_H
A QgsLayoutViewMouseEvent is the result of a user interaction with the mouse on a QgsLayoutView.
Layout view tool for adding node based items to a layout.
void createdItem()
Emitted when an item has been created using the tool.
Abstract base class for all layout view tools.
virtual void deactivate()
Called when tool is deactivated.
virtual void layoutMoveEvent(QgsLayoutViewMouseEvent *event)
Mouse move event for overriding.
virtual void layoutPressEvent(QgsLayoutViewMouseEvent *event)
Mouse press event for overriding.
virtual void layoutReleaseEvent(QgsLayoutViewMouseEvent *event)
Mouse release event for overriding.
virtual void keyPressEvent(QKeyEvent *event)
Key press event for overriding.
A graphical widget to display and interact with QgsLayouts.
Definition: qgslayoutview.h:50
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53