QGIS API Documentation
3.20.0-Odense (decaadbb31)
|
The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates and allows filtering its events. More...
#include <qgsmaptooladvanceddigitizing.h>
Public Member Functions | |
QgsMapToolAdvancedDigitizing (QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget) | |
Creates an advanced digitizing maptool. More... | |
void | activate () override |
Registers this maptool with the cad dock widget. More... | |
virtual void | cadCanvasMoveEvent (QgsMapMouseEvent *e) |
Override this method when subclassing this class. More... | |
virtual void | cadCanvasPressEvent (QgsMapMouseEvent *e) |
Override this method when subclassing this class. More... | |
virtual void | cadCanvasReleaseEvent (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... | |
void | deactivate () override |
Unregisters this maptool from the cad dock widget. 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... | |
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) | |
double | defaultMValue () const |
Returns default M value. More... | |
double | defaultZValue () const |
Returns default Z value. 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 void | clean () |
convenient method to clean members 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 | keyPressEvent (QKeyEvent *e) |
Key event for overriding. Default implementation does nothing. 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... | |
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 Member Functions | |
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... | |
QgsGeometryRubberBand * | createGeometryRubberBand (QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry, bool alternativeBand=false) const |
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... | |
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... | |
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... | |
QgsPointXY | toMapCoordinates (QPoint point) |
Transforms a point from screen coordinates to map coordinates. More... | |
Protected Attributes | |
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... | |
QgsMapCanvas * | mCanvas = nullptr |
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... | |
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... | |
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 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... | |
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 (
Definition at line 36 of file qgsmaptooladvanceddigitizing.h.
|
explicit |
Creates an advanced digitizing maptool.
canvas | The map canvas on which the tool works |
cadDockWidget | The cad dock widget which will be used to adjust mouse events |
Definition at line 24 of file qgsmaptooladvanceddigitizing.cpp.
|
overridevirtual |
Registers this maptool with the cad dock widget.
Reimplemented from QgsMapTool.
Reimplemented in QgsMapToolDigitizeFeature, and QgsMapToolCapture.
Definition at line 121 of file qgsmaptooladvanceddigitizing.cpp.
|
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.
e | Mouse events prepared by the cad system |
Reimplemented in QgsMapToolCapture.
Definition at line 145 of file qgsmaptooladvanceddigitizing.h.
|
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.
e | Mouse events prepared by the cad system |
Definition at line 123 of file qgsmaptooladvanceddigitizing.h.
|
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.
e | Mouse events prepared by the cad system |
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 134 of file qgsmaptooladvanceddigitizing.h.
|
inline |
Definition at line 65 of file qgsmaptooladvanceddigitizing.h.
|
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 95 of file qgsmaptooladvanceddigitizing.cpp.
|
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 32 of file qgsmaptooladvanceddigitizing.cpp.
|
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 55 of file qgsmaptooladvanceddigitizing.cpp.
|
overridevirtual |
Unregisters this maptool from the cad dock widget.
Reimplemented from QgsMapTool.
Reimplemented in QgsMapToolDigitizeFeature, and QgsMapToolCapture.
Definition at line 136 of file qgsmaptooladvanceddigitizing.cpp.
|
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.
Definition at line 80 of file qgsmaptooladvanceddigitizing.h.
|
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.
Definition at line 90 of file qgsmaptooladvanceddigitizing.h.
|
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.
Definition at line 100 of file qgsmaptooladvanceddigitizing.h.
|
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.
Definition at line 108 of file qgsmaptooladvanceddigitizing.h.
void QgsMapToolAdvancedDigitizing::setSnapToLayerGridEnabled | ( | bool | snapToLayerGridEnabled | ) |
Enables or disables snap to grid of mouse events.
The snapping will occur in the layer's CRS.
Definition at line 175 of file qgsmaptooladvanceddigitizing.cpp.
bool QgsMapToolAdvancedDigitizing::snapToLayerGridEnabled | ( | ) | const |
Enables or disables snap to grid of mouse events.
The snapping will occur in the layer's CRS.
Definition at line 170 of file qgsmaptooladvanceddigitizing.cpp.
|
protected |
Definition at line 111 of file qgsmaptooladvanceddigitizing.h.