QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
The QgsAdvancedDigitizingDockWidget class is a dockable widget used to handle the CAD tools on top of a selection of map tools. More...
#include <qgsadvanceddigitizingdockwidget.h>
Classes | |
class | CadConstraint |
The CadConstraint is an abstract class for all basic constraints (angle/distance/x/y). More... | |
Public Types | |
enum | AdditionalConstraint : int { AdditionalConstraint::NoConstraint, AdditionalConstraint::Perpendicular, AdditionalConstraint::Parallel } |
Additional constraints which can be enabled. More... | |
enum | CadCapacity { AbsoluteAngle = 1, RelativeAngle = 2, RelativeCoordinates = 4 } |
The CadCapacity enum defines the possible constraints to be set depending on the number of points in the CAD point list (the list of points currently digitized) More... | |
enum | WidgetSetMode { ReturnPressed, FocusOut, TextEdited } |
Type of interaction to simulate when editing values from external widget. More... | |
Signals | |
void | cadEnabledChanged (bool enabled) |
Signals for external widgets that need to update according to current values. More... | |
void | enabledChangedAngle (bool enabled) |
Emitted whenever the angle field is enabled or disabled. More... | |
void | enabledChangedDistance (bool enabled) |
Emitted whenever the distance field is enabled or disabled. More... | |
void | enabledChangedX (bool enabled) |
Emitted whenever the X field is enabled or disabled. More... | |
void | enabledChangedY (bool enabled) |
Emitted whenever the Y field is enabled or disabled. More... | |
void | focusOnAngleRequested () |
Emitted whenever the angle field should get the focus using the shortcuts (A). More... | |
void | focusOnDistanceRequested () |
Emitted whenever the distance field should get the focus using the shortcuts (D). More... | |
void | focusOnXRequested () |
Emitted whenever the X field should get the focus using the shortcuts (X). More... | |
void | focusOnYRequested () |
Emitted whenever the Y field should get the focus using the shortcuts (Y). More... | |
void | lockAngleChanged (bool locked) |
Emitted whenever the angle parameter is locked. More... | |
void | lockDistanceChanged (bool locked) |
Emitted whenever the distance parameter is locked. More... | |
void | lockXChanged (bool locked) |
Emitted whenever the X parameter is locked. More... | |
void | lockYChanged (bool locked) |
Emitted whenever the Y parameter is locked. More... | |
void | pointChanged (const QgsPointXY &point) |
Sometimes a constraint may change the current point out of a mouse event. More... | |
void | popWarning () |
Remove any previously emitted warnings (if any) More... | |
void | pushWarning (const QString &message) |
Push a warning. More... | |
void | relativeAngleChanged (bool relative) |
Emitted whenever the angleX parameter is toggled between absolute and relative. More... | |
void | relativeXChanged (bool relative) |
Emitted whenever the X parameter is toggled between absolute and relative. More... | |
void | relativeYChanged (bool relative) |
Emitted whenever the Y parameter is toggled between absolute and relative. More... | |
void | valueAngleChanged (const QString &value) |
Emitted whenever the angle value changes (either the mouse moved, or the user changed the input). More... | |
void | valueDistanceChanged (const QString &value) |
Emitted whenever the distance value changes (either the mouse moved, or the user changed the input). More... | |
void | valueXChanged (const QString &value) |
Emitted whenever the X value changes (either the mouse moved, or the user changed the input). More... | |
void | valueYChanged (const QString &value) |
Emitted whenever the Y value changes (either the mouse moved, or the user changed the input). More... | |
Signals inherited from QgsDockWidget | |
void | closed () |
Emitted when dock widget is closed. More... | |
void | closedStateChanged (bool wasClosed) |
Emitted when dock widget is closed (or opened). More... | |
void | opened () |
Emitted when dock widget is opened. More... | |
void | openedStateChanged (bool wasOpened) |
Emitted when dock widget is opened (or closed). More... | |
Public Member Functions | |
QgsAdvancedDigitizingDockWidget (QgsMapCanvas *canvas, QWidget *parent=nullptr) | |
Create an advanced digitizing dock widget. More... | |
AdditionalConstraint | additionalConstraint () const |
Returns the additional constraints which are used to place perpendicular/parallel segments to snapped segments on the canvas. More... | |
void | addPoint (const QgsPointXY &point) |
Adds point to the CAD point list. More... | |
bool | alignToSegment (QgsMapMouseEvent *e, QgsAdvancedDigitizingDockWidget::CadConstraint::LockMode lockMode=QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock) |
align to segment for additional constraint. More... | |
bool | applyConstraints (QgsMapMouseEvent *e) |
apply the CAD constraints. More... | |
bool | cadEnabled () const |
determines if CAD tools are enabled or if map tools behaves "nomally" More... | |
bool | canvasKeyPressEventFilter (QKeyEvent *e) |
Filter key events to e.g. More... | |
void | clear () |
Clear any cached previous clicks and helper lines. More... | |
void | clearPoints () |
Removes all points from the CAD point list. More... | |
bool | commonAngleConstraint () const |
Returns true if a constraint on a common angle is active. More... | |
const CadConstraint * | constraintAngle () const |
Returns the CadConstraint on the angle. More... | |
const CadConstraint * | constraintDistance () const |
Returns the CadConstraint on the distance. More... | |
const CadConstraint * | constraintX () const |
Returns the CadConstraint on the X coordinate. More... | |
const CadConstraint * | constraintY () const |
Returns the CadConstraint on the Y coordinate. More... | |
bool | constructionMode () const |
construction mode is used to draw intermediate points. These points won't be given any further (i.e. to the map tools) More... | |
QgsPointXY | currentPoint (bool *exists=nullptr) const |
The last point. More... | |
void | disable () |
Disable the widget. More... | |
void | enable () |
Enables the tool (call this when an appropriate map tool is set and in the condition to make use of cad digitizing) Normally done automatically from QgsMapToolAdvancedDigitizing::activate() but may need to be fine tuned if the map tool depends on preconditions like a feature selection. More... | |
QAction * | enableAction () |
Returns the action used to enable/disable the tools. More... | |
void | keyPressEvent (QKeyEvent *e) override |
QgsPointLocator::Match | mapPointMatch () const |
Returns the point locator match. More... | |
QgsPointXY | penultimatePoint (bool *exists=nullptr) const |
The penultimate point. More... | |
int | pointsCount () const |
The number of points in the CAD point helper list. More... | |
QgsPointXY | previousPoint (bool *exists=nullptr) const |
The previous point. More... | |
void | releaseLocks (bool releaseRepeatingLocks=true) |
unlock all constraints More... | |
void | removePreviousPoint () |
Remove previous point in the CAD point list. More... | |
void | setAngle (const QString &value, WidgetSetMode mode) |
Set the angle value on the widget. More... | |
void | setDistance (const QString &value, WidgetSetMode mode) |
Set the distance value on the widget. More... | |
void | setPoints (const QList< QgsPointXY > &points) |
Configures list of current CAD points. More... | |
void | setX (const QString &value, WidgetSetMode mode) |
Set the X value on the widget. More... | |
void | setY (const QString &value, WidgetSetMode mode) |
Set the Y value on the widget. More... | |
QList< QgsPointXY > | snappedSegment () const |
Snapped to a segment. More... | |
bool | snappedToVertex () const |
Is it snapped to a vertex. More... | |
void | updateCadPaintItem () |
Updates canvas item that displays constraints on the ma. More... | |
Public Member Functions inherited from QgsDockWidget | |
QgsDockWidget (QWidget *parent=nullptr, Qt::WindowFlags flags=nullptr) | |
Constructor for QgsDockWidget. More... | |
QgsDockWidget (const QString &title, QWidget *parent=nullptr, Qt::WindowFlags flags=nullptr) | |
Constructor for QgsDockWidget. More... | |
bool | isUserVisible () const |
Returns true if the dock is both opened and raised to the front (ie not hidden by any other tabs. More... | |
void | setToggleVisibilityAction (QAction *action) |
Links an action to the dock, so that toggling the action will automatically set the dock's visibility to suit (and changing the dock visibility will update the action's state). More... | |
QAction * | toggleVisibilityAction () |
Returns the action linked to the dock. More... | |
Additional Inherited Members | |
Public Slots inherited from QgsDockWidget | |
void | setUserVisible (bool visible) |
Sets the dock widget as visible to a user, ie both shown and raised to the front. More... | |
void | toggleUserVisible () |
Toggles whether the dock is user visible. More... | |
Protected Member Functions inherited from QgsDockWidget | |
void | closeEvent (QCloseEvent *) override |
void | showEvent (QShowEvent *event) override |
The QgsAdvancedDigitizingDockWidget class is a dockable widget used to handle the CAD tools on top of a selection of map tools.
It handles both the UI and the constraints. Constraints are applied by implementing filters called from QgsMapToolAdvancedDigitizing.
Definition at line 48 of file qgsadvanceddigitizingdockwidget.h.
|
strong |
Additional constraints which can be enabled.
Enumerator | |
---|---|
NoConstraint | No additional constraint. |
Perpendicular | Perpendicular. |
Parallel | Parallel. |
Definition at line 71 of file qgsadvanceddigitizingdockwidget.h.
The CadCapacity enum defines the possible constraints to be set depending on the number of points in the CAD point list (the list of points currently digitized)
Enumerator | |
---|---|
AbsoluteAngle | Azimuth. |
RelativeAngle | Also for parallel and perpendicular. |
RelativeCoordinates | This corresponds to distance and relative coordinates. |
Definition at line 59 of file qgsadvanceddigitizingdockwidget.h.
Type of interaction to simulate when editing values from external widget.
Enumerator | |
---|---|
ReturnPressed | |
FocusOut | |
TextEdited |
Definition at line 83 of file qgsadvanceddigitizingdockwidget.h.
|
explicit |
Create an advanced digitizing dock widget.
canvas | The map canvas on which the widget operates |
parent | The parent |
Definition at line 42 of file qgsadvanceddigitizingdockwidget.cpp.
|
inline |
Returns the additional constraints which are used to place perpendicular/parallel segments to snapped segments on the canvas.
Definition at line 260 of file qgsadvanceddigitizingdockwidget.h.
void QgsAdvancedDigitizingDockWidget::addPoint | ( | const QgsPointXY & | point | ) |
Adds point to the CAD point list.
Definition at line 1151 of file qgsadvanceddigitizingdockwidget.cpp.
bool QgsAdvancedDigitizingDockWidget::alignToSegment | ( | QgsMapMouseEvent * | e, |
QgsAdvancedDigitizingDockWidget::CadConstraint::LockMode | lockMode = QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock |
||
) |
align to segment for additional constraint.
If additional constraints are used, this will determine the angle to be locked depending on the snapped segment.
Definition at line 802 of file qgsadvanceddigitizingdockwidget.cpp.
bool QgsAdvancedDigitizingDockWidget::applyConstraints | ( | QgsMapMouseEvent * | e | ) |
apply the CAD constraints.
The will modify the position of the map event in map coordinates by applying the CAD constraints.
false
if no solution was found (invalid constraints) Definition at line 631 of file qgsadvanceddigitizingdockwidget.cpp.
|
inline |
determines if CAD tools are enabled or if map tools behaves "nomally"
Definition at line 251 of file qgsadvanceddigitizingdockwidget.h.
|
signal |
Signals for external widgets that need to update according to current values.
Emitted whenever CAD is enabled or disabled
enabled | Whether CAD is enabled or not |
bool QgsAdvancedDigitizingDockWidget::canvasKeyPressEventFilter | ( | QKeyEvent * | e | ) |
Filter key events to e.g.
toggle construction mode or adapt constraints
e | A mouse event (may be modified) |
Definition at line 843 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::clear | ( | ) |
Clear any cached previous clicks and helper lines.
Definition at line 874 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::clearPoints | ( | ) |
Removes all points from the CAD point list.
Definition at line 1177 of file qgsadvanceddigitizingdockwidget.cpp.
|
inline |
Returns true
if a constraint on a common angle is active.
Definition at line 270 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
Returns the CadConstraint on the angle.
Definition at line 262 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
Returns the CadConstraint on the distance.
Definition at line 264 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
Returns the CadConstraint on the X coordinate.
Definition at line 266 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
Returns the CadConstraint on the Y coordinate.
Definition at line 268 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
construction mode is used to draw intermediate points. These points won't be given any further (i.e. to the map tools)
Definition at line 254 of file qgsadvanceddigitizingdockwidget.h.
QgsPointXY QgsAdvancedDigitizingDockWidget::currentPoint | ( | bool * | exists = nullptr | ) | const |
The last point.
Helper for the CAD point list. The CAD point list is the list of points currently digitized. It contains both "normal" points and intermediate points (construction mode).
Definition at line 1258 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::disable | ( | ) |
Disable the widget.
Normally done automatically from QgsMapToolAdvancedDigitizing::deactivate().
Definition at line 1132 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::enable | ( | ) |
Enables the tool (call this when an appropriate map tool is set and in the condition to make use of cad digitizing) Normally done automatically from QgsMapToolAdvancedDigitizing::activate() but may need to be fine tuned if the map tool depends on preconditions like a feature selection.
Definition at line 1106 of file qgsadvanceddigitizingdockwidget.cpp.
|
inline |
Returns the action used to enable/disable the tools.
Definition at line 342 of file qgsadvanceddigitizingdockwidget.h.
|
signal |
Emitted whenever the angle field is enabled or disabled.
Depending on the context, some parameters do not make sense (e.g. you need a previous point to define a distance). Could be used by widgets that must reflect the current advanced digitizing state.
enabled | Whether the angle parameter is enabled or not. |
|
signal |
Emitted whenever the distance field is enabled or disabled.
Depending on the context, some parameters do not make sense (e.g. you need a previous point to define a distance). Could be used by widgets that must reflect the current advanced digitizing state.
enabled | Whether the distance parameter is enabled or not. |
|
signal |
Emitted whenever the X field is enabled or disabled.
Depending on the context, some parameters do not make sense (e.g. you need a previous point to define a distance). Could be used by widgets that must reflect the current advanced digitizing state.
enabled | Whether the X parameter is enabled or not. |
|
signal |
Emitted whenever the Y field is enabled or disabled.
Depending on the context, some parameters do not make sense (e.g. you need a previous point to define a distance). Could be used by widgets that must reflect the current advanced digitizing state.
enabled | Whether the Y parameter is enabled or not. |
|
signal |
Emitted whenever the angle field should get the focus using the shortcuts (A).
Could be used by widgets to capture the focus when a field is being edited.
|
signal |
Emitted whenever the distance field should get the focus using the shortcuts (D).
Could be used by widgets to capture the focus when a field is being edited.
|
signal |
Emitted whenever the X field should get the focus using the shortcuts (X).
Could be used by widgets to capture the focus when a field is being edited.
|
signal |
Emitted whenever the Y field should get the focus using the shortcuts (Y).
Could be used by widgets to capture the focus when a field is being edited.
|
override |
Definition at line 880 of file qgsadvanceddigitizingdockwidget.cpp.
|
signal |
Emitted whenever the angle parameter is locked.
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the distance parameter is locked.
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the X parameter is locked.
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the Y parameter is locked.
Could be used by widgets that must reflect the current advanced digitizing state.
|
inline |
Returns the point locator match.
Definition at line 276 of file qgsadvanceddigitizingdockwidget.h.
QgsPointXY QgsAdvancedDigitizingDockWidget::penultimatePoint | ( | bool * | exists = nullptr | ) | const |
The penultimate point.
Helper for the CAD point list. The CAD point list is the list of points currently digitized. It contains both "normal" points and intermediate points (construction mode).
Definition at line 1278 of file qgsadvanceddigitizingdockwidget.cpp.
|
signal |
Sometimes a constraint may change the current point out of a mouse event.
This happens normally when a constraint is toggled.
point | The last known digitizing point. Can be used to emulate a mouse event. |
|
inline |
The number of points in the CAD point helper list.
Definition at line 329 of file qgsadvanceddigitizingdockwidget.h.
|
signal |
Remove any previously emitted warnings (if any)
QgsPointXY QgsAdvancedDigitizingDockWidget::previousPoint | ( | bool * | exists = nullptr | ) | const |
The previous point.
Helper for the CAD point list. The CAD point list is the list of points currently digitized. It contains both "normal" points and intermediate points (construction mode).
Definition at line 1268 of file qgsadvanceddigitizingdockwidget.cpp.
|
signal |
Push a warning.
message | An informative message |
|
signal |
Emitted whenever the angleX parameter is toggled between absolute and relative.
Could be used by widgets that must reflect the current advanced digitizing state.
relative | Whether the angle parameter is relative or not. |
|
signal |
Emitted whenever the X parameter is toggled between absolute and relative.
Could be used by widgets that must reflect the current advanced digitizing state.
relative | Whether the X parameter is relative or not. |
|
signal |
Emitted whenever the Y parameter is toggled between absolute and relative.
Could be used by widgets that must reflect the current advanced digitizing state.
relative | Whether the Y parameter is relative or not. |
void QgsAdvancedDigitizingDockWidget::releaseLocks | ( | bool | releaseRepeatingLocks = true | ) |
unlock all constraints
releaseRepeatingLocks | set to false to preserve the lock for any constraints set to repeating lock mode |
Definition at line 341 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::removePreviousPoint | ( | ) |
Remove previous point in the CAD point list.
Definition at line 1166 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::setAngle | ( | const QString & | value, |
WidgetSetMode | mode | ||
) |
Set the angle value on the widget.
Can be used to set constraints by external widgets.
mode | What type of interaction to emulate |
value | The value (as a QString, as it could be an expression) |
Definition at line 200 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::setDistance | ( | const QString & | value, |
WidgetSetMode | mode | ||
) |
Set the distance value on the widget.
Can be used to set constraints by external widgets.
mode | What type of interaction to emulate |
value | The value (as a QString, as it could be an expression) |
Definition at line 217 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::setPoints | ( | const QList< QgsPointXY > & | points | ) |
Configures list of current CAD points.
Some map tools may find it useful to override list of CAD points that is otherwise automatically populated when user clicks with left mouse button on map canvas.
Definition at line 909 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::setX | ( | const QString & | value, |
WidgetSetMode | mode | ||
) |
Set the X value on the widget.
Can be used to set constraints by external widgets.
mode | What type of interaction to emulate |
value | The value (as a QString, as it could be an expression) |
Definition at line 166 of file qgsadvanceddigitizingdockwidget.cpp.
void QgsAdvancedDigitizingDockWidget::setY | ( | const QString & | value, |
WidgetSetMode | mode | ||
) |
Set the Y value on the widget.
Can be used to set constraints by external widgets.
mode | What type of interaction to emulate |
value | The value (as a QString, as it could be an expression) |
Definition at line 183 of file qgsadvanceddigitizingdockwidget.cpp.
|
inline |
Snapped to a segment.
Definition at line 339 of file qgsadvanceddigitizingdockwidget.h.
|
inline |
Is it snapped to a vertex.
Definition at line 334 of file qgsadvanceddigitizingdockwidget.h.
void QgsAdvancedDigitizingDockWidget::updateCadPaintItem | ( | ) |
Updates canvas item that displays constraints on the ma.
Definition at line 1146 of file qgsadvanceddigitizingdockwidget.cpp.
|
signal |
Emitted whenever the angle value changes (either the mouse moved, or the user changed the input).
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the distance value changes (either the mouse moved, or the user changed the input).
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the X value changes (either the mouse moved, or the user changed the input).
Could be used by widgets that must reflect the current advanced digitizing state.
|
signal |
Emitted whenever the Y value changes (either the mouse moved, or the user changed the input).
Could be used by widgets that must reflect the current advanced digitizing state.