QGIS API Documentation 3.41.0-Master (45a0abf3bec)
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 {
28 mView = nullptr;
29 } );
30}
31
32bool QgsLayoutViewTool::isClickAndDrag( QPoint startViewPoint, QPoint endViewPoint ) const
33{
34 const int diffX = endViewPoint.x() - startViewPoint.x();
35 const int diffY = endViewPoint.y() - startViewPoint.y();
36 return std::abs( diffX ) >= 2 || std::abs( diffY ) >= 2;
37}
38
40{
41 return mView;
42}
43
45{
46 return mView->currentLayout();
47}
48
49QList<QgsLayoutItem *> QgsLayoutViewTool::ignoredSnapItems() const
50{
51 return QList<QgsLayoutItem *>();
52}
53
55{
56 if ( mView )
57 mView->unsetTool( this );
58}
59
61{
62 return mFlags;
63}
64
69
71{
72 event->ignore();
73}
74
76{
77 event->ignore();
78}
79
81{
82 event->ignore();
83}
84
86{
87 event->ignore();
88}
89
90void QgsLayoutViewTool::wheelEvent( QWheelEvent *event )
91{
92 event->ignore();
93}
94
95void QgsLayoutViewTool::keyPressEvent( QKeyEvent *event )
96{
97 event->ignore();
98}
99
101{
102 event->ignore();
103}
104
105void QgsLayoutViewTool::setAction( QAction *action )
106{
107 mAction = action;
108}
109
111{
112 return mAction;
113
114}
115
116void QgsLayoutViewTool::setCursor( const QCursor &cursor )
117{
118 mCursor = cursor;
119}
120
122{
123 // make action and/or button active
124 if ( mAction )
125 mAction->setChecked( true );
126
127 mView->viewport()->setCursor( mCursor );
128 emit activated();
129}
130
132{
133 if ( mAction )
134 mAction->setChecked( false );
135
136 emit deactivated();
137}
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