QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgslayoutviewtooleditnodes.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayoutviewtooleditnodes.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 QGSLAYOUTVIEWTOOLEDITNODES_H
17 #define QGSLAYOUTVIEWTOOLEDITNODES_H
18 
19 #include "qgis_sip.h"
20 #include "qgis_gui.h"
21 #include "qgslayoutviewtool.h"
22 
23 class QgsLayoutNodesItem;
24 
31 {
32 
33  Q_OBJECT
34 
35  public:
36 
41 
45  void deleteSelectedNode();
46 
47  void activate() override;
48  void layoutPressEvent( QgsLayoutViewMouseEvent *event ) override;
49  void layoutMoveEvent( QgsLayoutViewMouseEvent *event ) override;
50  void layoutReleaseEvent( QgsLayoutViewMouseEvent *event ) override;
51  void layoutDoubleClickEvent( QgsLayoutViewMouseEvent *event ) override;
52  void keyPressEvent( QKeyEvent *event ) override;
53  void deactivate() override;
54  QList< QgsLayoutItem * > ignoredSnapItems() const override;
55 
56  private:
57 
58  const double mMoveContentSearchRadius = 25;
59 
60  QPointer< QgsLayoutNodesItem > mNodesItem;
61  int mNodesItemIndex = -1;
62 
64  QPointF mMoveContentStartPos;
65 
66  bool isMoving = false;
67 
68  void displayNodes( bool display = true );
69  void deselectNodes();
70  void setSelectedNode( QgsLayoutNodesItem *shape, int index );
71 
72 
73 };
74 
75 #endif // QGSLAYOUTVIEWTOOLEDITNODES_H
An abstract layout item that provides generic methods for node based shapes such as polygon or polyli...
A QgsLayoutViewMouseEvent is the result of a user interaction with the mouse on a QgsLayoutView.
Layout view tool for edit node based items in the layout.
Abstract base class for all layout view tools.
virtual QList< QgsLayoutItem * > ignoredSnapItems() const
Returns a list of items which should be ignored while snapping events for this tool.
virtual void deactivate()
Called when tool is deactivated.
virtual void layoutDoubleClickEvent(QgsLayoutViewMouseEvent *event)
Mouse double-click event for overriding.
virtual void activate()
Called when tool is set as the currently active layout tool.
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