QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsMapToolAdvancedDigitizing Class Reference

The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates and allows filtering its events. More...

#include <qgsmaptooladvanceddigitizing.h>

Inheritance diagram for QgsMapToolAdvancedDigitizing:
Inheritance graph
[legend]

Public Member Functions

 QgsMapToolAdvancedDigitizing (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget)
 Creates an advanced digitizing maptool.
 
 ~QgsMapToolAdvancedDigitizing () override
 
void activate () override
 Registers this maptool with the cad dock widget.
 
virtual void cadCanvasMoveEvent (QgsMapMouseEvent *e)
 Override this method when subclassing this class.
 
virtual void cadCanvasPressEvent (QgsMapMouseEvent *e)
 Override this method when subclassing this class.
 
virtual void cadCanvasReleaseEvent (QgsMapMouseEvent *e)
 Override this method when subclassing this class.
 
QgsAdvancedDigitizingDockWidgetcadDockWidget () const
 
void canvasMoveEvent (QgsMapMouseEvent *e) override
 Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method.
 
void canvasPressEvent (QgsMapMouseEvent *e) override
 Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method.
 
void canvasReleaseEvent (QgsMapMouseEvent *e) override
 Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method.
 
void deactivate () override
 Unregisters this maptool from the cad dock widget.
 
bool isAdvancedDigitizingAllowed () const
 Returns whether functionality of advanced digitizing dock widget is currently allowed.
 
bool isAutoSnapEnabled () const
 Returns whether mouse events (press/move/release) should automatically try to snap mouse position (according to the snapping configuration of map canvas) before passing the mouse coordinates to the tool.
 
virtual QgsMapLayerlayer () const
 Returns the layer associated with the map tool.
 
void setSnapToLayerGridEnabled (bool snapToLayerGridEnabled)
 Enables or disables snap to grid of mouse events.
 
bool snapToLayerGridEnabled () const
 Enables or disables snap to grid of mouse events.
 
bool useSnappingIndicator () const
 Returns whether the snapping indicator should automatically be used.
 
- Public Member Functions inherited from QgsMapToolEdit
 QgsMapToolEdit (QgsMapCanvas *canvas)
 
QgsGeometryRubberBandcreateGeometryRubberBand (Qgis::GeometryType geometryType=Qgis::GeometryType::Line, bool alternativeBand=false) const
 Creates a geometry rubber band with the color/line width from the QGIS settings.
 
Flags flags () const override
 Returns the flags for the map tool.
 
- Public Member Functions inherited from QgsMapTool
 ~QgsMapTool () override
 
QAction * action ()
 Returns associated action with map tool or nullptr if no action is associated.
 
QAbstractButton * button ()
 Returns associated button with map tool or nullptr if no button is associated.
 
QgsMapCanvascanvas () const
 returns pointer to the tool's map canvas
 
virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)
 Mouse double-click event for overriding. Default implementation does nothing.
 
virtual bool canvasToolTipEvent (QHelpEvent *e)
 Tooltip event for overriding.
 
virtual void clean ()
 convenient method to clean members
 
virtual bool gestureEvent (QGestureEvent *e)
 gesture event for overriding. Default implementation does nothing.
 
bool isActive () const
 Returns if the current map tool active on the map canvas.
 
virtual void keyPressEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing.
 
virtual void keyReleaseEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing.
 
virtual void populateContextMenu (QMenu *menu)
 Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click.
 
virtual bool populateContextMenuWithEvent (QMenu *menu, QgsMapMouseEvent *event)
 Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click.
 
virtual void reactivate ()
 Called when the map tool is being activated while it is already active.
 
void setAction (QAction *action)
 Use this to associate a QAction to this maptool.
 
void setButton (QAbstractButton *button)
 Use this to associate a button to this maptool.
 
virtual void setCursor (const QCursor &cursor)
 Sets a user defined cursor.
 
QgsPointXY toMapCoordinates (QPoint point)
 Transforms a point from screen coordinates to map coordinates.
 
QString toolName ()
 Emit map tool changed with the old tool.
 
virtual void wheelEvent (QWheelEvent *e)
 Mouse wheel event for overriding. Default implementation does nothing.
 

Protected Member Functions

void setAdvancedDigitizingAllowed (bool allowed)
 Sets whether functionality of advanced digitizing dock widget is currently allowed.
 
void setAutoSnapEnabled (bool enabled)
 Sets whether mouse events (press/move/release) should automatically try to snap mouse position This method is protected because it should be a decision of the map tool and not from elsewhere.
 
void setUseSnappingIndicator (bool enabled)
 Sets whether a snapping indicator should automatically be used.
 
- Protected Member Functions inherited from QgsMapToolEdit
TopologicalResult addTopologicalPoints (const QVector< QgsPoint > &vertices)
 Adds a list of vertices to other features to keep topology up to date, e.g.
 
Q_DECL_DEPRECATED TopologicalResult addTopologicalPoints (const QVector< QgsPointXY > &vertices)
 Adds a list of vertices to other features to keep topology up to date, e.g.
 
QgsRubberBandcreateRubberBand (Qgis::GeometryType geometryType=Qgis::GeometryType::Line, bool alternativeBand=false)
 Creates a rubber band with the color/line width from the QGIS settings.
 
QgsVectorLayercurrentVectorLayer ()
 Returns the current vector layer of the map canvas or 0.
 
void notifyNotEditableLayer ()
 Display a timed message bar noting the active vector layer is not editable.
 
void notifyNotVectorLayer ()
 Display a timed message bar noting the active layer is not vector.
 
- Protected Member Functions inherited from QgsMapTool
 QgsMapTool (QgsMapCanvas *canvas)
 Constructor takes a map canvas as a parameter.
 
QgsMapLayerlayer (const QString &id)
 Returns the map layer with the matching ID, or nullptr if no layers could be found.
 
void setToolName (const QString &name)
 Sets the tool's name.
 
QPoint toCanvasCoordinates (const QgsPointXY &point) const
 Transforms a point from map coordinates to screen coordinates.
 
QgsPoint toLayerCoordinates (const QgsMapLayer *layer, const QgsPoint &point)
 Transforms a point from map coordinates to layer coordinates.
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 Transforms a point from map coordinates to layer coordinates.
 
QgsRectangle toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect)
 Transforms a rect from map coordinates to layer coordinates.
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, QPoint point)
 Transforms a point from screen coordinates to layer coordinates.
 
QgsPoint toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point)
 Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used).
 
QgsPointXY toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used).
 

Protected Attributes

QgsAdvancedDigitizingDockWidgetmCadDockWidget = nullptr
 
- Protected Attributes inherited from QgsMapTool
QAction * mAction = nullptr
 Optional pointer to an action that will be checked on map tool activation and unchecked on map tool deactivation.
 
QAbstractButton * mButton = nullptr
 Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation.
 
QPointer< QgsMapCanvasmCanvas
 The pointer to the map canvas.
 
QCursor mCursor
 The cursor used in the map tool.
 
QString mToolName
 The translated name of the map tool.
 

Additional Inherited Members

- Public Types inherited from QgsMapTool
enum  Flag { Transient = 1 << 1 , EditTool = 1 << 2 , AllowZoomRect = 1 << 3 , ShowContextMenu = 1 << 4 }
 Enumeration of flags that adjust the way the map tool operates. More...
 
typedef QFlags< FlagFlags
 
- Signals inherited from QgsMapTool
void activated ()
 signal emitted once the map tool is activated
 
void deactivated ()
 signal emitted once the map tool is deactivated
 
void messageDiscarded ()
 emit signal to clear previous message
 
void messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::MessageLevel::Info)
 emit a message
 
void reactivated ()
 
- Static Public Member Functions inherited from QgsMapToolEdit
static double defaultMValue ()
 Returns default M value.
 
static double defaultZValue ()
 Returns default Z value.
 
- Static Public Member Functions inherited from QgsMapTool
static double searchRadiusMM ()
 Gets search radius in mm.
 
static double searchRadiusMU (const QgsRenderContext &context)
 Gets search radius in map units for given context.
 
static double searchRadiusMU (QgsMapCanvas *canvas)
 Gets search radius in map units for given canvas.
 
- Protected Types inherited from QgsMapToolEdit
enum  TopologicalResult { Success = 0 , InvalidCanvas = 1 , InvalidLayer = 2 }
 Result of addTopologicalPoints. More...
 
- Static Protected Member Functions inherited from QgsMapToolEdit
static QColor digitizingFillColor ()
 Returns fill color for rubber bands (from global settings)
 
static QColor digitizingStrokeColor ()
 Returns stroke color for rubber bands (from global settings)
 
static int digitizingStrokeWidth ()
 Returns stroke width for rubber bands (from global settings)
 

Detailed Description

The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates and allows filtering its events.

Events from QgsMapTool are caught and their QMouseEvent are transformed into QgsMapMouseEvent (with map coordinates). Events are then forwarded to corresponding virtual methods which can be reimplemented in subclasses. An event filter can be set on the map tool to filter and modify the events in map coordinates (

See also
QgsMapToolMapEventFilter).
Note
at the moment, the event filter is used by the CAD tools (
See also
QgsCadDocWidget).
Note
the event filter definition is not exposed in Python API to avoid any unexpected behavior.

Definition at line 38 of file qgsmaptooladvanceddigitizing.h.

Constructor & Destructor Documentation

◆ QgsMapToolAdvancedDigitizing()

QgsMapToolAdvancedDigitizing::QgsMapToolAdvancedDigitizing ( QgsMapCanvas canvas,
QgsAdvancedDigitizingDockWidget cadDockWidget 
)
explicit

Creates an advanced digitizing maptool.

Parameters
canvasThe map canvas on which the tool works
cadDockWidgetThe cad dock widget which will be used to adjust mouse events

Definition at line 25 of file qgsmaptooladvanceddigitizing.cpp.

◆ ~QgsMapToolAdvancedDigitizing()

QgsMapToolAdvancedDigitizing::~QgsMapToolAdvancedDigitizing ( )
overridedefault

Member Function Documentation

◆ activate()

void QgsMapToolAdvancedDigitizing::activate ( )
overridevirtual

Registers this maptool with the cad dock widget.

Reimplemented from QgsMapTool.

Reimplemented in QgsMapToolCapture, and QgsMapToolDigitizeFeature.

Definition at line 115 of file qgsmaptooladvanceddigitizing.cpp.

◆ cadCanvasMoveEvent()

virtual void QgsMapToolAdvancedDigitizing::cadCanvasMoveEvent ( QgsMapMouseEvent e)
inlinevirtual

Override this method when subclassing this class.

This will receive adapted events from the cad system whenever a canvasMoveEvent is triggered and it's not hidden by the cad's construction mode.

Parameters
eMouse events prepared by the cad system

Reimplemented in QgsMapToolCapture, QgsCreateRectangleTextItemMapTool, QgsCreatePictureItemMapTool, and QgsMapToolModifyAnnotation.

Definition at line 182 of file qgsmaptooladvanceddigitizing.h.

◆ cadCanvasPressEvent()

virtual void QgsMapToolAdvancedDigitizing::cadCanvasPressEvent ( QgsMapMouseEvent e)
inlinevirtual

Override this method when subclassing this class.

This will receive adapted events from the cad system whenever a canvasPressEvent is triggered and it's not hidden by the cad's construction mode.

Parameters
eMouse events prepared by the cad system

Reimplemented in QgsCreatePointTextItemMapTool, QgsCreateRectangleTextItemMapTool, QgsCreatePictureItemMapTool, and QgsMapToolModifyAnnotation.

Definition at line 160 of file qgsmaptooladvanceddigitizing.h.

◆ cadCanvasReleaseEvent()

virtual void QgsMapToolAdvancedDigitizing::cadCanvasReleaseEvent ( QgsMapMouseEvent e)
inlinevirtual

Override this method when subclassing this class.

This will receive adapted events from the cad system whenever a canvasReleaseEvent is triggered and it's not hidden by the cad's construction mode.

Parameters
eMouse events prepared by the cad system

Reimplemented in QgsMapToolCapture, QgsMapToolDigitizeFeature, and QgsCreateMarkerItemMapTool.

Definition at line 171 of file qgsmaptooladvanceddigitizing.h.

◆ cadDockWidget()

QgsAdvancedDigitizingDockWidget * QgsMapToolAdvancedDigitizing::cadDockWidget ( ) const
inline

Definition at line 67 of file qgsmaptooladvanceddigitizing.h.

◆ canvasMoveEvent()

void QgsMapToolAdvancedDigitizing::canvasMoveEvent ( QgsMapMouseEvent e)
overridevirtual

Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method.

Reimplemented from QgsMapTool.

Definition at line 84 of file qgsmaptooladvanceddigitizing.cpp.

◆ canvasPressEvent()

void QgsMapToolAdvancedDigitizing::canvasPressEvent ( QgsMapMouseEvent e)
overridevirtual

Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method.

Reimplemented from QgsMapTool.

Definition at line 35 of file qgsmaptooladvanceddigitizing.cpp.

◆ canvasReleaseEvent()

void QgsMapToolAdvancedDigitizing::canvasReleaseEvent ( QgsMapMouseEvent e)
overridevirtual

Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method.

Reimplemented from QgsMapTool.

Definition at line 60 of file qgsmaptooladvanceddigitizing.cpp.

◆ deactivate()

void QgsMapToolAdvancedDigitizing::deactivate ( )
overridevirtual

Unregisters this maptool from the cad dock widget.

Reimplemented from QgsMapTool.

Reimplemented in QgsMapToolModifyAnnotation, QgsMapToolCapture, and QgsMapToolDigitizeFeature.

Definition at line 130 of file qgsmaptooladvanceddigitizing.cpp.

◆ isAdvancedDigitizingAllowed()

bool QgsMapToolAdvancedDigitizing::isAdvancedDigitizingAllowed ( ) const
inline

Returns whether functionality of advanced digitizing dock widget is currently allowed.

Tools may decide to switch this support on/off based on the current state of the map tool. For example, in vertex tool before user picks a vertex to move, advanced digitizing dock widget should be disabled and only enabled once a vertex is being moved. Other map tools may keep advanced digitizing allowed all the time.

If true is returned, that does not mean that advanced digitizing is actually active, because it is up to the user to enable/disable it when it is allowed.

The default is that advanced digitizing is allowed.

See also
setAdvancedDigitizingAllowed()

Definition at line 93 of file qgsmaptooladvanceddigitizing.h.

◆ isAutoSnapEnabled()

bool QgsMapToolAdvancedDigitizing::isAutoSnapEnabled ( ) const
inline

Returns whether mouse events (press/move/release) should automatically try to snap mouse position (according to the snapping configuration of map canvas) before passing the mouse coordinates to the tool.

This may be desirable default behavior for some map tools, but not for other map tools. It is therefore possible to configure the behavior by the map tool.

The default is that auto snapping is enabled.

See also
isAutoSnapEnabled()

Definition at line 105 of file qgsmaptooladvanceddigitizing.h.

◆ layer()

QgsMapLayer * QgsMapToolAdvancedDigitizing::layer ( ) const
virtual

Returns the layer associated with the map tool.

By default this returns the map canvas' QgsMapCanvas::currentLayer().

Since
QGIS 3.22

Reimplemented in QgsMapToolCaptureAnnotationItem.

Definition at line 142 of file qgsmaptooladvanceddigitizing.cpp.

◆ setAdvancedDigitizingAllowed()

void QgsMapToolAdvancedDigitizing::setAdvancedDigitizingAllowed ( bool  allowed)
inlineprotected

Sets whether functionality of advanced digitizing dock widget is currently allowed.

This method is protected because it should be a decision of the map tool and not from elsewhere.

The default is that advanced digitizing is allowed.

See also
isAdvancedDigitizingAllowed()

Definition at line 126 of file qgsmaptooladvanceddigitizing.h.

◆ setAutoSnapEnabled()

void QgsMapToolAdvancedDigitizing::setAutoSnapEnabled ( bool  enabled)
inlineprotected

Sets whether mouse events (press/move/release) should automatically try to snap mouse position This method is protected because it should be a decision of the map tool and not from elsewhere.

The default is that auto snapping is enabled.

See also
isAutoSnapEnabled()

Definition at line 136 of file qgsmaptooladvanceddigitizing.h.

◆ setSnapToLayerGridEnabled()

void QgsMapToolAdvancedDigitizing::setSnapToLayerGridEnabled ( bool  snapToLayerGridEnabled)

Enables or disables snap to grid of mouse events.

The snapping will occur in the layer's CRS.

Since
QGIS 3.4

Definition at line 200 of file qgsmaptooladvanceddigitizing.cpp.

◆ setUseSnappingIndicator()

void QgsMapToolAdvancedDigitizing::setUseSnappingIndicator ( bool  enabled)
protected

Sets whether a snapping indicator should automatically be used.

The default is that a snap indicator is not used.

See also
useSnappingIndicator()
Since
QGIS 3.40

Definition at line 152 of file qgsmaptooladvanceddigitizing.cpp.

◆ snapToLayerGridEnabled()

bool QgsMapToolAdvancedDigitizing::snapToLayerGridEnabled ( ) const

Enables or disables snap to grid of mouse events.

The snapping will occur in the layer's CRS.

Since
QGIS 3.4

Definition at line 195 of file qgsmaptooladvanceddigitizing.cpp.

◆ useSnappingIndicator()

bool QgsMapToolAdvancedDigitizing::useSnappingIndicator ( ) const

Returns whether the snapping indicator should automatically be used.

The default is that a snap indicator is not used.

See also
setUseSnappingIndicator()
Since
QGIS 3.40

Definition at line 147 of file qgsmaptooladvanceddigitizing.cpp.

Member Data Documentation

◆ mCadDockWidget

QgsAdvancedDigitizingDockWidget* QgsMapToolAdvancedDigitizing::mCadDockWidget = nullptr
protected

Definition at line 149 of file qgsmaptooladvanceddigitizing.h.


The documentation for this class was generated from the following files: