QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
qgslayoutviewtool.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutviewtool.cpp
3 ---------------------
4 Date : July 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#include "qgslayoutviewtool.h"
17#include "moc_qgslayoutviewtool.cpp"
18#include "qgslayoutview.h"
20
22 : QObject( view )
23 , mView( view )
24 , mToolName( name )
25{
26 connect( mView, &QgsLayoutView::willBeDeleted, this, [=] {
27 mView = nullptr;
28 } );
29}
30
31bool QgsLayoutViewTool::isClickAndDrag( QPoint startViewPoint, QPoint endViewPoint ) const
32{
33 const int diffX = endViewPoint.x() - startViewPoint.x();
34 const int diffY = endViewPoint.y() - startViewPoint.y();
35 return std::abs( diffX ) >= 2 || std::abs( diffY ) >= 2;
36}
37
39{
40 return mView;
41}
42
44{
45 return mView->currentLayout();
46}
47
48QList<QgsLayoutItem *> QgsLayoutViewTool::ignoredSnapItems() const
49{
50 return QList<QgsLayoutItem *>();
51}
52
54{
55 if ( mView )
56 mView->unsetTool( this );
57}
58
60{
61 return mFlags;
62}
63
68
70{
71 event->ignore();
72}
73
75{
76 event->ignore();
77}
78
80{
81 event->ignore();
82}
83
85{
86 event->ignore();
87}
88
89void QgsLayoutViewTool::wheelEvent( QWheelEvent *event )
90{
91 event->ignore();
92}
93
94void QgsLayoutViewTool::keyPressEvent( QKeyEvent *event )
95{
96 event->ignore();
97}
98
99void QgsLayoutViewTool::keyReleaseEvent( QKeyEvent *event )
100{
101 event->ignore();
102}
103
104void QgsLayoutViewTool::setAction( QAction *action )
105{
106 mAction = action;
107}
108
110{
111 return mAction;
112}
113
114void QgsLayoutViewTool::setCursor( const QCursor &cursor )
115{
116 mCursor = cursor;
117}
118
120{
121 // make action and/or button active
122 if ( mAction )
123 mAction->setChecked( true );
124
125 mView->viewport()->setCursor( mCursor );
126 emit activated();
127}
128
130{
131 if ( mAction )
132 mAction->setChecked( false );
133
134 emit deactivated();
135}
A QgsLayoutViewMouseEvent is the result of a user interaction with the mouse on a QgsLayoutView.
void setCursor(const QCursor &cursor)
Sets a user defined cursor for use when the tool is active.
QgsLayoutView * view() const
Returns the view associated with the tool.
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.
QgsLayoutViewTool::Flags flags() const
Returns the current combination of flags set for the tool.
virtual void wheelEvent(QWheelEvent *event)
Mouse wheel event for overriding.
QAction * action()
Returns the action associated with the tool or nullptr if no action is associated.
virtual void keyReleaseEvent(QKeyEvent *event)
Key release event for overriding.
bool isClickAndDrag(QPoint startViewPoint, QPoint endViewPoint) const
Returns true if a mouse press/release operation which started at startViewPoint and ended at endViewP...
void setFlags(QgsLayoutViewTool::Flags flags)
Sets the combination of flags that will be used for the tool.
void setAction(QAction *action)
Associates an action with this tool.
virtual void activate()
Called when tool is set as the currently active layout tool.
QgsLayout * layout() const
Returns the layout associated with the tool.
virtual void layoutMoveEvent(QgsLayoutViewMouseEvent *event)
Mouse move event for overriding.
void activated()
Emitted when the tool is activated.
virtual void layoutPressEvent(QgsLayoutViewMouseEvent *event)
Mouse press event for overriding.
QgsLayoutViewTool(QgsLayoutView *view, const QString &name)
Constructor for QgsLayoutViewTool, taking a layout view and tool name as parameters.
virtual void layoutReleaseEvent(QgsLayoutViewMouseEvent *event)
Mouse release event for overriding.
virtual void keyPressEvent(QKeyEvent *event)
Key press event for overriding.
QFlags< Flag > Flags
void deactivated()
Emitted when the tool is deactivated.
A graphical widget to display and interact with QgsLayouts.
QgsLayout * currentLayout
void willBeDeleted()
Emitted in the destructor when the view is about to be deleted, but is still in a perfectly valid sta...
void unsetTool(QgsLayoutViewTool *tool)
Unsets the current view tool, if it matches the specified tool.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition qgslayout.h:49