| 
    QGIS API Documentation
    3.26.3-Buenos Aires (65e4edfdad)
    
   | 
 
#include <qgsmaptoolcapture.h>

Public Types | |
| enum | Capability { NoCapabilities = 1 << 0, SupportsCurves = 1 << 1, ValidateGeometries = 1 << 2 } | 
| Specific capabilities of the tool.  More... | |
| enum | CaptureMode { CaptureNone, CapturePoint, CaptureLine, CapturePolygon } | 
| Different capture modes.  More... | |
  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... | |
Public Slots | |
| Q_DECL_DEPRECATED void | setCircularDigitizingEnabled (bool enable) | 
| Enable the digitizing with curve.  More... | |
| Q_DECL_DEPRECATED void | setStreamDigitizingEnabled (bool enable) | 
| Toggles the stream digitizing mode.  More... | |
Public Member Functions | |
| QgsMapToolCapture (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget, CaptureMode mode) | |
| constructor  More... | |
| ~QgsMapToolCapture () override | |
| void | activate () override | 
| Registers this maptool with the cad dock widget.  More... | |
| int | addCurve (QgsCurve *c) | 
| Adds a whole curve (e.g. circularstring) to the captured geometry. Curve must be in map CRS.  More... | |
| void | cadCanvasMoveEvent (QgsMapMouseEvent *e) override | 
| Override this method when subclassing this class.  More... | |
| void | cadCanvasReleaseEvent (QgsMapMouseEvent *e) override | 
| Override this method when subclassing this class.  More... | |
| virtual QgsMapToolCapture::Capabilities | capabilities () const | 
| Returns flags containing the supported capabilities.  More... | |
| const QgsCompoundCurve * | captureCurve () const | 
| Gets the capture curve.  More... | |
| void | clean () override | 
| convenient method to clean members  More... | |
| void | clearCurve () | 
| Clear capture curve.  More... | |
| void | deactivate () override | 
| Unregisters this maptool from the cad dock widget.  More... | |
| void | deleteTempRubberBand () | 
| Clean a temporary rubberband.  More... | |
| void | keyPressEvent (QKeyEvent *e) override | 
| Intercept key events like Esc or Del to delete the last point.  More... | |
| QgsPoint | mapPoint (const QgsMapMouseEvent &e) const | 
| Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer).  More... | |
| QgsPoint | mapPoint (const QgsPointXY &point) const | 
| Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer).  More... | |
| CaptureMode | mode () const | 
| The capture mode.  More... | |
| void | setCurrentCaptureTechnique (Qgis::CaptureTechnique technique) | 
| Sets the current capture if it is supported by the map tool.  More... | |
| void | setCurrentShapeMapTool (const QgsMapToolShapeMetadata *shapeMapToolMetadata) | 
| Sets the current shape tool.  More... | |
| QList< QgsPointLocator::Match > | snappingMatches () const | 
| Returns a list of matches for each point on the captureCurve.  More... | |
| virtual bool | supportsTechnique (Qgis::CaptureTechnique technique) const | 
Returns true if the tool supports the specified capture technique.  More... | |
| QgsRubberBand * | takeRubberBand () | 
| Returns the rubberBand currently owned by this map tool and transfers ownership to the caller.  More... | |
  Public Member Functions inherited from QgsMapToolAdvancedDigitizing | |
| QgsMapToolAdvancedDigitizing (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget) | |
| Creates an advanced digitizing maptool.  More... | |
| virtual void | cadCanvasPressEvent (QgsMapMouseEvent *e) | 
| Override this method when subclassing this class.  More... | |
| QgsAdvancedDigitizingDockWidget * | cadDockWidget () const | 
| void | canvasMoveEvent (QgsMapMouseEvent *e) override | 
| Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method.  More... | |
| void | canvasPressEvent (QgsMapMouseEvent *e) override | 
| Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method.  More... | |
| void | canvasReleaseEvent (QgsMapMouseEvent *e) override | 
| Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method.  More... | |
| bool | isAdvancedDigitizingAllowed () const | 
| Returns whether functionality of advanced digitizing dock widget is currently allowed.  More... | |
| 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.  More... | |
| virtual QgsMapLayer * | layer () const | 
| Returns the layer associated with the map tool.  More... | |
| void | setSnapToLayerGridEnabled (bool snapToLayerGridEnabled) | 
| Enables or disables snap to grid of mouse events.  More... | |
| bool | snapToLayerGridEnabled () const | 
| Enables or disables snap to grid of mouse events.  More... | |
  Public Member Functions inherited from QgsMapToolEdit | |
| QgsMapToolEdit (QgsMapCanvas *canvas) | |
| QgsGeometryRubberBand * | createGeometryRubberBand (QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry, bool alternativeBand=false) const | 
| Creates a geometry rubber band with the color/line width from the QGIS settings.  More... | |
| Flags | flags () const override | 
| Returns the flags for the map tool.  More... | |
  Public Member Functions inherited from QgsMapTool | |
| ~QgsMapTool () override | |
| QAction * | action () | 
Returns associated action with map tool or nullptr if no action is associated.  More... | |
| QAbstractButton * | button () | 
Returns associated button with map tool or nullptr if no button is associated.  More... | |
| QgsMapCanvas * | canvas () const | 
| returns pointer to the tool's map canvas  More... | |
| virtual void | canvasDoubleClickEvent (QgsMapMouseEvent *e) | 
| Mouse double-click event for overriding. Default implementation does nothing.  More... | |
| virtual bool | canvasToolTipEvent (QHelpEvent *e) | 
| Tooltip event for overriding.  More... | |
| virtual bool | gestureEvent (QGestureEvent *e) | 
| gesture event for overriding. Default implementation does nothing.  More... | |
| bool | isActive () const | 
| Returns if the current map tool active on the map canvas.  More... | |
| virtual void | keyReleaseEvent (QKeyEvent *e) | 
| Key event for overriding. Default implementation does nothing.  More... | |
| 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.  More... | |
| 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.  More... | |
| void | setAction (QAction *action) | 
| Use this to associate a QAction to this maptool.  More... | |
| void | setButton (QAbstractButton *button) | 
| Use this to associate a button to this maptool.  More... | |
| virtual void | setCursor (const QCursor &cursor) | 
| Sets a user defined cursor.  More... | |
| QgsPointXY | toMapCoordinates (QPoint point) | 
| Transforms a point from screen coordinates to map coordinates.  More... | |
| QString | toolName () | 
| Emit map tool changed with the old tool.  More... | |
| virtual void | wheelEvent (QWheelEvent *e) | 
| Mouse wheel event for overriding. Default implementation does nothing.  More... | |
Protected Slots | |
| void | stopCapturing () | 
| Stop capturing.  More... | |
Protected Member Functions | |
| int | addVertex (const QgsPointXY &mapPoint, const QgsPointLocator::Match &match) | 
| Variant to supply more information in the case of snapping.  More... | |
| int | addVertex (const QgsPointXY &point) | 
| Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates)  More... | |
| void | closePolygon () | 
| Close an open polygon.  More... | |
| int | fetchLayerPoint (const QgsPointLocator::Match &match, QgsPoint &layerPoint) | 
| Fetches the original point from the source layer if it has the same CRS as the current layer.  More... | |
| bool | isCapturing () const | 
| Are we currently capturing?  More... | |
| int | nextPoint (const QgsPoint &mapPoint, QgsPoint &layerPoint) | 
| Converts a map point to layer coordinates.  More... | |
| int | nextPoint (QPoint p, QgsPoint &layerPoint, QgsPoint &mapPoint) | 
| Converts a point to map coordinates and layer coordinates.  More... | |
| Q_DECL_DEPRECATED QVector< QgsPointXY > | points () const | 
| List of digitized points.  More... | |
| QgsPointSequence | pointsZM () const | 
| List of digitized points.  More... | |
| void | setPoints (const QgsPointSequence &pointList) | 
| Set the points on which to work.  More... | |
| Q_DECL_DEPRECATED void | setPoints (const QVector< QgsPointXY > &pointList) | 
| Set the points on which to work.  More... | |
| int | size () | 
| Number of points digitized.  More... | |
| void | startCapturing () | 
| Start capturing.  More... | |
| void | undo (bool isAutoRepeat=false) | 
| Removes the last vertex from mRubberBand and mCaptureList.  More... | |
  Protected Member Functions inherited from QgsMapToolAdvancedDigitizing | |
| void | setAdvancedDigitizingAllowed (bool allowed) | 
| Sets whether functionality of advanced digitizing dock widget is currently allowed.  More... | |
| 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.  More... | |
  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.  More... | |
| 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.  More... | |
| QgsRubberBand * | createRubberBand (QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry, bool alternativeBand=false) | 
| Creates a rubber band with the color/line width from the QGIS settings.  More... | |
| QgsVectorLayer * | currentVectorLayer () | 
| Returns the current vector layer of the map canvas or 0.  More... | |
| void | notifyNotEditableLayer () | 
| Display a timed message bar noting the active vector layer is not editable.  More... | |
| void | notifyNotVectorLayer () | 
| Display a timed message bar noting the active layer is not vector.  More... | |
  Protected Member Functions inherited from QgsMapTool | |
| QgsMapTool (QgsMapCanvas *canvas) | |
| Constructor takes a map canvas as a parameter.  More... | |
| QgsMapLayer * | layer (const QString &id) | 
Returns the map layer with the matching ID, or nullptr if no layers could be found.  More... | |
| void | setToolName (const QString &name) | 
| Sets the tool's name.  More... | |
| QPoint | toCanvasCoordinates (const QgsPointXY &point) const | 
| Transforms a point from map coordinates to screen coordinates.  More... | |
| QgsPoint | toLayerCoordinates (const QgsMapLayer *layer, const QgsPoint &point) | 
| Transforms a point from map coordinates to layer coordinates.  More... | |
| QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) | 
| Transforms a point from map coordinates to layer coordinates.  More... | |
| QgsRectangle | toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect) | 
| Transforms a rect from map coordinates to layer coordinates.  More... | |
| QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, QPoint point) | 
| Transforms a point from screen coordinates to layer coordinates.  More... | |
| 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).  More... | |
| 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).  More... | |
Friends | |
| class | TestQgsMapToolCapture | 
Additional Inherited Members | |
  Signals inherited from QgsMapTool | |
| void | activated () | 
| signal emitted once the map tool is activated  More... | |
| void | deactivated () | 
| signal emitted once the map tool is deactivated  More... | |
| void | messageDiscarded () | 
| emit signal to clear previous message  More... | |
| void | messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::MessageLevel::Info) | 
| emit a message  More... | |
  Static Public Member Functions inherited from QgsMapToolEdit | |
| static double | defaultMValue () | 
| Returns default M value.  More... | |
| static double | defaultZValue () | 
| Returns default Z value.  More... | |
  Static Public Member Functions inherited from QgsMapTool | |
| static double | searchRadiusMM () | 
| Gets search radius in mm.  More... | |
| static double | searchRadiusMU (const QgsRenderContext &context) | 
| Gets search radius in map units for given context.  More... | |
| static double | searchRadiusMU (QgsMapCanvas *canvas) | 
| Gets search radius in map units for given canvas.  More... | |
  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)  More... | |
| static QColor | digitizingStrokeColor () | 
| Returns stroke color for rubber bands (from global settings)  More... | |
| static int | digitizingStrokeWidth () | 
| Returns stroke width for rubber bands (from global settings)  More... | |
  Protected Attributes inherited from QgsMapToolAdvancedDigitizing | |
| QgsAdvancedDigitizingDockWidget * | mCadDockWidget = 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.  More... | |
| QAbstractButton * | mButton = nullptr | 
| Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation.  More... | |
| QPointer< QgsMapCanvas > | mCanvas | 
| The pointer to the map canvas.  More... | |
| QCursor | mCursor | 
| The cursor used in the map tool.  More... | |
| QString | mToolName | 
| The translated name of the map tool.  More... | |
QgsMapToolCapture is a base class capable of capturing point, lines and polygons. The tool supports different techniques: straight segments, curves, streaming and shapes Once the the geometry is captured the virtual private handler geometryCaptured is called as well as a more specific handler (pointCaptured, lineCaptured or polygonCaptured)
Definition at line 49 of file qgsmaptoolcapture.h.
Specific capabilities of the tool.
| Enumerator | |
|---|---|
| NoCapabilities | No specific capabilities.  | 
| SupportsCurves | Supports curved geometries input.  | 
| ValidateGeometries | Tool supports geometry validation (since QGIS 3.22)  | 
Definition at line 65 of file qgsmaptoolcapture.h.
Different capture modes.
| Enumerator | |
|---|---|
| CaptureNone | Do not capture / determine mode from layer geometry type.  | 
| CapturePoint | Capture points.  | 
| CaptureLine | Capture lines.  | 
| CapturePolygon | Capture polygons.  | 
Definition at line 56 of file qgsmaptoolcapture.h.
| QgsMapToolCapture::QgsMapToolCapture | ( | QgsMapCanvas * | canvas, | 
| QgsAdvancedDigitizingDockWidget * | cadDockWidget, | ||
| CaptureMode | mode | ||
| ) | 
constructor
Definition at line 46 of file qgsmaptoolcapture.cpp.
      
  | 
  override | 
Definition at line 75 of file qgsmaptoolcapture.cpp.
      
  | 
  overridevirtual | 
Registers this maptool with the cad dock widget.
Reimplemented from QgsMapToolAdvancedDigitizing.
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 116 of file qgsmaptoolcapture.cpp.
| int QgsMapToolCapture::addCurve | ( | QgsCurve * | c | ) | 
Adds a whole curve (e.g. circularstring) to the captured geometry. Curve must be in map CRS.
Definition at line 786 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Variant to supply more information in the case of snapping.
| mapPoint | The vertex to add in map coordinates | 
| match | Data about the snapping match. Can be an invalid match, if point not snapped. | 
Definition at line 669 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates)
Definition at line 664 of file qgsmaptoolcapture.cpp.
      
  | 
  overridevirtual | 
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.
| e | Mouse events prepared by the cad system | 
Reimplemented from QgsMapToolAdvancedDigitizing.
Definition at line 459 of file qgsmaptoolcapture.cpp.
      
  | 
  overridevirtual | 
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.
| e | Mouse events prepared by the cad system | 
Reimplemented from QgsMapToolAdvancedDigitizing.
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 1229 of file qgsmaptoolcapture.cpp.
      
  | 
  virtual | 
Returns flags containing the supported capabilities.
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 97 of file qgsmaptoolcapture.cpp.
      
  | 
  inline | 
      
  | 
  overridevirtual | 
convenient method to clean members
Reimplemented from QgsMapTool.
Definition at line 1001 of file qgsmaptoolcapture.cpp.
| void QgsMapToolCapture::clearCurve | ( | ) | 
      
  | 
  protected | 
Close an open polygon.
Definition at line 1010 of file qgsmaptoolcapture.cpp.
      
  | 
  overridevirtual | 
Unregisters this maptool from the cad dock widget.
Reimplemented from QgsMapToolAdvancedDigitizing.
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 128 of file qgsmaptoolcapture.cpp.
| void QgsMapToolCapture::deleteTempRubberBand | ( | ) | 
Clean a temporary rubberband.
Definition at line 996 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Fetches the original point from the source layer if it has the same CRS as the current layer.
Definition at line 592 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Are we currently capturing?
Definition at line 968 of file qgsmaptoolcapture.cpp.
      
  | 
  overridevirtual | 
Intercept key events like Esc or Del to delete the last point.
| e | key event | 
Reimplemented from QgsMapTool.
Definition at line 918 of file qgsmaptoolcapture.cpp.
| QgsPoint QgsMapToolCapture::mapPoint | ( | const QgsMapMouseEvent & | e | ) | const | 
Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer).
If the point is snapped, then the Z value is derived from the snapped point.
| e | A mouse event | 
Definition at line 1173 of file qgsmaptoolcapture.cpp.
| QgsPoint QgsMapToolCapture::mapPoint | ( | const QgsPointXY & | point | ) | const | 
Creates a QgsPoint with ZM support if necessary (according to the WkbType of the current layer).
| point | A point in 2D | 
Definition at line 1134 of file qgsmaptoolcapture.cpp.
      
  | 
  inline | 
Converts a map point to layer coordinates.
| mapPoint | the point in map coordinates | |
| [in,out] | layerPoint | the point in layer coordinates | 
nullptr 2 if the transformation failed Definition at line 559 of file qgsmaptoolcapture.cpp.
Converts a point to map coordinates and layer coordinates.
| p | the input point | |
| [in,out] | layerPoint | the point in layer coordinates | 
| [in,out] | mapPoint | the point in map coordinates | 
nullptr or not a vector layer 2 if the transformation failed Definition at line 586 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
List of digitized points.
Definition at line 1095 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
List of digitized points.
Definition at line 1103 of file qgsmaptoolcapture.cpp.
      
  | 
  slot | 
Enable the digitizing with curve.
Definition at line 379 of file qgsmaptoolcapture.cpp.
| void QgsMapToolCapture::setCurrentCaptureTechnique | ( | Qgis::CaptureTechnique | technique | ) | 
Sets the current capture if it is supported by the map tool.
Definition at line 395 of file qgsmaptoolcapture.cpp.
| void QgsMapToolCapture::setCurrentShapeMapTool | ( | const QgsMapToolShapeMetadata * | shapeMapToolMetadata | ) | 
Sets the current shape tool.
Definition at line 438 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Set the points on which to work.
| pointList | A list of points | 
Definition at line 1122 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Set the points on which to work.
| pointList | A list of points | 
Definition at line 1110 of file qgsmaptoolcapture.cpp.
      
  | 
  slot | 
Toggles the stream digitizing mode.
Definition at line 387 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Number of points digitized.
Definition at line 1090 of file qgsmaptoolcapture.cpp.
| QList< QgsPointLocator::Match > QgsMapToolCapture::snappingMatches | ( | ) | const | 
Returns a list of matches for each point on the captureCurve.
Definition at line 840 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Start capturing.
Definition at line 963 of file qgsmaptoolcapture.cpp.
      
  | 
  protectedslot | 
Stop capturing.
Definition at line 973 of file qgsmaptoolcapture.cpp.
      
  | 
  virtual | 
Returns true if the tool supports the specified capture technique. 
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 102 of file qgsmaptoolcapture.cpp.
| QgsRubberBand * QgsMapToolCapture::takeRubberBand | ( | ) | 
Returns the rubberBand currently owned by this map tool and transfers ownership to the caller.
Definition at line 374 of file qgsmaptoolcapture.cpp.
      
  | 
  protected | 
Removes the last vertex from mRubberBand and mCaptureList.
Since QGIS 3.20, if isAutoRepeat is set to true then the undo operation will be treated as a auto repeated undo as if the user has held down the undo key for an extended period of time. 
Definition at line 845 of file qgsmaptoolcapture.cpp.
      
  | 
  friend | 
Definition at line 439 of file qgsmaptoolcapture.h.
 1.8.17