QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsmaptooladvanceddigitizing.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmaptooladvanceddigitizing.h - map tool with event in map coordinates
3  ----------------------
4  begin : October 2014
5  copyright : (C) Denis Rouzaud
6  email : [email protected]
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 
17 #ifndef QGSMAPTOOLADVANCEDDIGITIZE_H
18 #define QGSMAPTOOLADVANCEDDIGITIZE_H
19 
20 #include "qgsmaptooledit.h"
21 #include "qgis_gui.h"
22 
23 class QgsMapMouseEvent;
26 
37 {
38  Q_OBJECT
39  public:
40 
47 
49  void canvasPressEvent( QgsMapMouseEvent *e ) override;
51  void canvasReleaseEvent( QgsMapMouseEvent *e ) override;
53  void canvasMoveEvent( QgsMapMouseEvent *e ) override;
54 
58  void activate() override;
59 
63  void deactivate() override;
64 
65  QgsAdvancedDigitizingDockWidget *cadDockWidget() const { return mCadDockWidget; }
66 
74  virtual QgsMapLayer *layer() const;
75 
89  bool isAdvancedDigitizingAllowed() const { return mAdvancedDigitizingAllowed; }
90 
99  bool isAutoSnapEnabled() const { return mAutoSnapEnabled; }
100 
101  protected:
102 
109  void setAdvancedDigitizingAllowed( bool allowed ) { mAdvancedDigitizingAllowed = allowed; }
110 
117  void setAutoSnapEnabled( bool enabled ) { mAutoSnapEnabled = enabled; }
118 
119 
120  QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;
121 
122  public:
123 
132  virtual void cadCanvasPressEvent( QgsMapMouseEvent *e ) { Q_UNUSED( e ) }
133 
134 
143  virtual void cadCanvasReleaseEvent( QgsMapMouseEvent *e ) { Q_UNUSED( e ) }
144 
145 
154  virtual void cadCanvasMoveEvent( QgsMapMouseEvent *e ) { Q_UNUSED( e ) }
155 
162  bool snapToLayerGridEnabled() const;
163 
170  void setSnapToLayerGridEnabled( bool snapToLayerGridEnabled );
171 
172  private slots:
173 
182  void cadPointChanged( const QgsPointXY &point );
183 
184  void onCurrentLayerChanged();
185 
186  private:
187 
189  bool mAdvancedDigitizingAllowed = true;
191  bool mAutoSnapEnabled = true;
193  bool mSnapToLayerGridEnabled = true;
194  QgsSnapToGridCanvasItem *mSnapToGridCanvasItem = nullptr;
195 };
196 
197 #endif // QGSMAPTOOLADVANCEDDIGITIZE_H
QgsMapToolAdvancedDigitizing::isAdvancedDigitizingAllowed
bool isAdvancedDigitizingAllowed() const
Returns whether functionality of advanced digitizing dock widget is currently allowed.
Definition: qgsmaptooladvanceddigitizing.h:89
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
QgsMapTool::deactivate
virtual void deactivate()
called when map tool is being deactivated
Definition: qgsmaptool.cpp:110
QgsMapToolAdvancedDigitizing::setAdvancedDigitizingAllowed
void setAdvancedDigitizingAllowed(bool allowed)
Sets whether functionality of advanced digitizing dock widget is currently allowed.
Definition: qgsmaptooladvanceddigitizing.h:109
QgsMapTool::layer
QgsMapLayer * layer(const QString &id)
Returns the map layer with the matching ID, or nullptr if no layers could be found.
Definition: qgsmaptool.cpp:84
QgsMapToolAdvancedDigitizing::isAutoSnapEnabled
bool isAutoSnapEnabled() const
Returns whether mouse events (press/move/release) should automatically try to snap mouse position (ac...
Definition: qgsmaptooladvanceddigitizing.h:99
QgsAdvancedDigitizingDockWidget
The QgsAdvancedDigitizingDockWidget class is a dockable widget used to handle the CAD tools on top of...
Definition: qgsadvanceddigitizingdockwidget.h:50
QgsMapTool::activate
virtual void activate()
called when set as currently active map tool
Definition: qgsmaptool.cpp:94
QgsPointXY
A class to represent a 2D point.
Definition: qgspointxy.h:58
QgsMapTool::canvasPressEvent
virtual void canvasPressEvent(QgsMapMouseEvent *e)
Mouse press event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:178
QgsMapMouseEvent
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas....
Definition: qgsmapmouseevent.h:35
QgsMapTool::canvasMoveEvent
virtual void canvasMoveEvent(QgsMapMouseEvent *e)
Mouse move event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:168
QgsMapToolEdit
Base class for map tools that edit vector geometry.
Definition: qgsmaptooledit.h:32
QgsMapTool::canvasReleaseEvent
virtual void canvasReleaseEvent(QgsMapMouseEvent *e)
Mouse release event for overriding. Default implementation does nothing.
Definition: qgsmaptool.cpp:183
QgsMapLayer
Base class for all map layer types. This is the base class for all map layer types (vector,...
Definition: qgsmaplayer.h:72
qgsmaptooledit.h
QgsMapToolAdvancedDigitizing::cadCanvasMoveEvent
virtual void cadCanvasMoveEvent(QgsMapMouseEvent *e)
Override this method when subclassing this class.
Definition: qgsmaptooladvanceddigitizing.h:154
QgsMapToolAdvancedDigitizing::cadDockWidget
QgsAdvancedDigitizingDockWidget * cadDockWidget() const
Definition: qgsmaptooladvanceddigitizing.h:65
QgsSnapToGridCanvasItem
Shows a grid on the map canvas given a spatial resolution.
Definition: qgssnaptogridcanvasitem.h:41
QgsMapToolAdvancedDigitizing
The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates ...
Definition: qgsmaptooladvanceddigitizing.h:36
QgsMapToolAdvancedDigitizing::cadCanvasPressEvent
virtual void cadCanvasPressEvent(QgsMapMouseEvent *e)
Override this method when subclassing this class.
Definition: qgsmaptooladvanceddigitizing.h:132
QgsMapToolAdvancedDigitizing::cadCanvasReleaseEvent
virtual void cadCanvasReleaseEvent(QgsMapMouseEvent *e)
Override this method when subclassing this class.
Definition: qgsmaptooladvanceddigitizing.h:143
QgsMapToolAdvancedDigitizing::setAutoSnapEnabled
void setAutoSnapEnabled(bool enabled)
Sets whether mouse events (press/move/release) should automatically try to snap mouse position This m...
Definition: qgsmaptooladvanceddigitizing.h:117