QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsadvanceddigitizingdockwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsadvanceddigitizingdockwidget.h - dock for CAD tools
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 #ifndef QGSADVANCEDDIGITIZINGDOCK
17 #define QGSADVANCEDDIGITIZINGDOCK
18 
19 #include <QList>
20 #include <QQueue>
21 
22 #include <memory>
23 
24 #include "ui_qgsadvanceddigitizingdockwidgetbase.h"
26 #include "qgis_gui.h"
27 #include "qgis_sip.h"
28 #include "qgsdockwidget.h"
29 #include "qgsmessagebaritem.h"
30 #include "qgspointxy.h"
31 #include "qgspointlocator.h"
32 #include "qgssnapindicator.h"
33 #include "qgscadutils.h"
34 
35 
38 class QgsMapCanvas;
39 class QgsMapTool;
41 class QgsMapMouseEvent;
42 
50 class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private Ui::QgsAdvancedDigitizingDockWidgetBase
51 {
52  Q_OBJECT
53 
54  public:
55 
62  {
63  AbsoluteAngle = 1,
64  RelativeAngle = 2,
65  RelativeCoordinates = 4,
66  Distance = 8,
67  };
68  Q_DECLARE_FLAGS( CadCapacities, CadCapacity )
69  Q_FLAG( CadCapacities )
70 
71 
77  {
78  ReturnPressed, FocusOut, TextEdited
79  };
80 
81 
88  class GUI_EXPORT CadConstraint
89  {
90  public:
91 
95  enum LockMode
96  {
99  HardLock
100  };
101 
109  CadConstraint( QLineEdit *lineEdit, QToolButton *lockerButton, QToolButton *relativeButton = nullptr, QToolButton *repeatingLockButton = nullptr )
110  : mLineEdit( lineEdit )
111  , mLockerButton( lockerButton )
112  , mRelativeButton( relativeButton )
113  , mRepeatingLockButton( repeatingLockButton )
114  , mLockMode( NoLock )
115  , mRepeatingLock( false )
116  , mRelative( false )
117  , mValue( 0.0 )
118  {}
119 
124  LockMode lockMode() const { return mLockMode; }
125 
129  bool isLocked() const { return mLockMode != NoLock; }
130 
137  bool isRepeatingLock() const { return mRepeatingLock; }
138 
142  bool relative() const { return mRelative; }
143 
147  double value() const { return mValue; }
148 
152  QLineEdit *lineEdit() const { return mLineEdit; }
153 
157  void setLockMode( LockMode mode );
158 
166  void setRepeatingLock( bool repeating );
167 
171  void setRelative( bool relative );
172 
178  void setValue( double value, bool updateWidget = true );
179 
183  void toggleLocked();
184 
188  void toggleRelative();
189 
196  int precision() const { return mPrecision; }
197 
204  void setPrecision( int precision );
205 
206  private:
207  QLineEdit *mLineEdit = nullptr;
208  QToolButton *mLockerButton = nullptr;
209  QToolButton *mRelativeButton = nullptr;
210  QToolButton *mRepeatingLockButton = nullptr;
211  LockMode mLockMode;
212  bool mRepeatingLock;
213  bool mRelative;
214  double mValue;
215  int mPrecision = 6;
216  };
217 
223  explicit QgsAdvancedDigitizingDockWidget( QgsMapCanvas *canvas, QWidget *parent = nullptr );
224 
231  bool canvasKeyPressEventFilter( QKeyEvent *e );
232 
237  bool applyConstraints( QgsMapMouseEvent *e );
238 
245 
251  void releaseLocks( bool releaseRepeatingLocks = true );
252 
256  void clear();
257 
258  void keyPressEvent( QKeyEvent *e ) override;
259 
261  bool cadEnabled() const { return mCadEnabled; }
262 
267  void switchZM( );
268 
273  void setEnabledZ( bool enable );
274 
279  void setEnabledM( bool enable );
280 
282  bool constructionMode() const { return mConstructionMode; }
283 
288  Qgis::BetweenLineConstraint betweenLineConstraint() const { return mBetweenLineConstraint; }
290  const CadConstraint *constraintAngle() const { return mAngleConstraint.get(); }
292  const CadConstraint *constraintDistance() const { return mDistanceConstraint.get(); }
294  const CadConstraint *constraintX() const { return mXConstraint.get(); }
296  const CadConstraint *constraintY() const { return mYConstraint.get(); }
297 
302  const CadConstraint *constraintZ() const { return mZConstraint.get(); }
303 
308  const CadConstraint *constraintM() const { return mMConstraint.get(); }
310  bool commonAngleConstraint() const { return !qgsDoubleNear( mCommonAngleConstraint, 0.0 ); }
311 
313  const CadConstraint *constraintLineExtension() const { return mLineExtensionConstraint.get(); }
314 
316  Qgis::LineExtensionSide lineExtensionSide() const { return mSoftLockLineExtension; }
317 
319  const CadConstraint *constraintXyVertex() const { return mXyVertexConstraint.get(); }
320 
322  double softLockX() const { return mSoftLockX; }
323 
325  double softLockY() const { return mSoftLockY; }
326 
331  QgsPointLocator::Match mapPointMatch() const { return mSnapMatch; }
332 
337  QList< QgsPointLocator::Match > lockedSnapVertices() const { return mLockedSnapVertices; }
338 
344  void clearLockedSnapVertices( bool force = true );
345 
350  void clearPoints();
351 
356  void addPoint( const QgsPointXY &point );
357 
362  void removePreviousPoint();
363 
371  void setPoints( const QList<QgsPointXY> &points );
372 
380  QgsPoint currentPointV2( bool *exists = nullptr ) const;
381 
387  QgsPoint currentPointLayerCoordinates( QgsMapLayer *layer ) const;
388 
395  Q_DECL_DEPRECATED QgsPointXY currentPoint( bool *exists = nullptr ) const SIP_DEPRECATED { return currentPointV2( exists ); };
396 
402  QgsPoint previousPointV2( bool *exists = nullptr ) const;
403 
410  Q_DECL_DEPRECATED QgsPointXY previousPoint( bool *exists = nullptr ) const SIP_DEPRECATED { return previousPointV2( exists ); };
411 
417  QgsPoint penultimatePointV2( bool *exists = nullptr ) const;
418 
425  Q_DECL_DEPRECATED QgsPointXY penultimatePoint( bool *exists = nullptr ) const SIP_DEPRECATED { return penultimatePointV2( exists ); };
426 
430  inline int pointsCount() const { return mCadPointList.count(); }
431 
435  inline bool snappedToVertex() const { return ( mSnapMatch.isValid() && ( mSnapMatch.hasVertex() || mSnapMatch.hasLineEndpoint() ) ); }
436 
440  QList<QgsPointXY> snappedSegment() const { return mSnappedSegment; }
441 
443  QAction *enableAction() { return mEnableAction; }
444 
451  void enable();
452 
456  void disable();
457 
462  void updateCadPaintItem();
463 
472  void setX( const QString &value, WidgetSetMode mode );
473 
482  void setY( const QString &value, WidgetSetMode mode );
483 
492  void setZ( const QString &value, WidgetSetMode mode );
493 
502  void setM( const QString &value, WidgetSetMode mode );
503 
512  void setAngle( const QString &value, WidgetSetMode mode );
513 
522  void setDistance( const QString &value, WidgetSetMode mode );
523 
528  double getLineZ( ) const;
529 
534  double getLineM( ) const;
535 
540  CadCapacities capacities() const { return mCapacities; };
541 
542  signals:
543 
549  void pushWarning( const QString &message );
550 
554  void popWarning();
555 
563  void pointChangedV2( const QgsPoint &point );
564 
572  Q_DECL_DEPRECATED void pointChanged( const QgsPointXY &point ) SIP_DEPRECATED;
573 
575 
583  void cadEnabledChanged( bool enabled );
584 
591  void valueXChanged( const QString &value );
592 
599  void valueYChanged( const QString &value );
600 
607  void valueZChanged( const QString &value );
608 
615  void valueMChanged( const QString &value );
616 
623  void valueAngleChanged( const QString &value );
624 
631  void valueDistanceChanged( const QString &value );
632 
639  void lockXChanged( bool locked );
640 
647  void lockYChanged( bool locked );
648 
655  void lockZChanged( bool locked );
656 
663  void lockMChanged( bool locked );
664 
671  void lockAngleChanged( bool locked );
672 
679  void lockDistanceChanged( bool locked );
680 
689  void relativeXChanged( bool relative );
690 
699  void relativeYChanged( bool relative );
700 
709  void relativeZChanged( bool relative );
710 
719  void relativeMChanged( bool relative );
720 
729  void relativeAngleChanged( bool relative );
730 
737  void softLockLineExtensionChanged( bool locked );
738 
745  void softLockXyChanged( bool locked );
746 
747  // relativeDistanceChanged doesn't exist as distance is always relative
748 
758  void enabledChangedX( bool enabled );
759 
769  void enabledChangedY( bool enabled );
770 
780  void enabledChangedZ( bool enabled );
781 
791  void enabledChangedM( bool enabled );
792 
802  void enabledChangedAngle( bool enabled );
803 
813  void enabledChangedDistance( bool enabled );
814 
821  void focusOnXRequested();
822 
829  void focusOnYRequested();
830 
837  void focusOnZRequested();
838 
845  void focusOnMRequested();
846 
853  void focusOnAngleRequested();
854 
861  void focusOnDistanceRequested();
862 
863 
864  private slots:
866  void betweenLineConstraintClicked( bool activated );
867 
869  void lockConstraint( bool activate = true );
870 
872  void lockParameterlessConstraint( bool activate = true );
873 
878  void constraintTextEdited( const QString &textValue );
879 
884  void constraintFocusOut();
885 
887  void setConstraintRelative( bool activate );
888 
890  void setConstraintRepeatingLock( bool activate );
891 
896  void activateCad( bool enabled );
897 
899  void setConstructionMode( bool enabled );
900 
902  void settingsButtonTriggered( QAction *action );
903 
904  private:
905 
909  QgsMapLayer *targetLayer() const;
910 
912  void setCadEnabled( bool enabled );
913 
918  void updateCapacity( bool updateUIwithoutChange = false );
919 
921  void lockBetweenLineConstraint( Qgis::BetweenLineConstraint constraint );
922 
928  QList<QgsPointXY> snapSegmentToAllLayers( const QgsPointXY &originalMapPoint, bool *snapped = nullptr ) const;
929 
931  void updateCurrentPoint( const QgsPoint &point );
932 
933 
938  bool filterKeyPress( QKeyEvent *e );
939 
944  bool eventFilter( QObject *obj, QEvent *event ) override SIP_SKIP;
945 
947  void triggerMouseMoveEvent();
948 
950  CadConstraint *objectToConstraint( const QObject *obj ) const;
951 
953  double parseUserInput( const QString &inputValue, bool &ok ) const;
954 
961  void updateConstraintValue( CadConstraint *constraint, const QString &textValue, bool convertExpression = false );
962 
964  void updateUnlockedConstraintValues( const QgsPoint &point );
965 
966 
972  void toggleLockedSnapVertex( const QgsPointLocator::Match &snapMatch, QgsPointLocator::Match previouslySnap );
973 
974  QgsMapCanvas *mMapCanvas = nullptr;
975  QgsAdvancedDigitizingCanvasItem *mCadPaintItem = nullptr;
977  std::unique_ptr<QgsSnapIndicator> mSnapIndicator;
978 
979  CadCapacities mCapacities = CadCapacities();
980 
981  bool mCurrentMapToolSupportsCad = false;
982 
983  // Pointer to the floater
984  QgsAdvancedDigitizingFloater *mFloater = nullptr;
985 
986  // CAD properties
988  bool mCadEnabled = false;
989  bool mConstructionMode = false;
990 
991  // constraints
992  std::unique_ptr< CadConstraint > mAngleConstraint;
993  std::unique_ptr< CadConstraint > mDistanceConstraint;
994  std::unique_ptr< CadConstraint > mXConstraint;
995  std::unique_ptr< CadConstraint > mYConstraint;
996  std::unique_ptr< CadConstraint > mZConstraint;
997  std::unique_ptr< CadConstraint > mMConstraint;
998  std::unique_ptr< CadConstraint > mLineExtensionConstraint;
999  std::unique_ptr< CadConstraint > mXyVertexConstraint;
1000  Qgis::BetweenLineConstraint mBetweenLineConstraint;
1001  double mCommonAngleConstraint; // if 0: do not snap to common angles
1002 
1003  // point list and current snap point / segment
1004  QList<QgsPoint> mCadPointList;
1005  QList<QgsPointXY> mSnappedSegment;
1006 
1007  bool mSessionActive = false;
1008 
1009  // error message
1010  std::unique_ptr<QgsMessageBarItem> mErrorMessage;
1011 
1012  // UI
1013  QMap< QAction *, double > mCommonAngleActions; // map the common angle actions with their angle values
1014  QAction *mLineExtensionAction;
1015  QAction *mXyVertexAction;
1016 
1017  // Snap indicator
1018  QgsPointLocator::Match mSnapMatch;
1019  QgsPointLocator::Match mLastSnapMatch;
1020 
1021  // Extra constraint context
1022  Qgis::LineExtensionSide mSoftLockLineExtension;
1023  double mSoftLockX;
1024  double mSoftLockY;
1025  QQueue< QgsPointLocator::Match > mLockedSnapVertices;
1026 
1027 #ifdef SIP_RUN
1028  bool eventFilter( QObject *obj, QEvent *event );
1030 #endif
1031  QgsPoint pointXYToPoint( const QgsPointXY &point ) const;
1033 
1034  friend class TestQgsAdvancedDigitizing;
1035  friend class TestQgsAdvancedDigitizingDockWidget;
1036 };
1037 
1038 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsAdvancedDigitizingDockWidget::CadCapacities )
1039 
1040 #endif // QGSADVANCEDDIGITIZINGDOCK_H
QgsAdvancedDigitizingDockWidget::constraintX
const CadConstraint * constraintX() const
Returns the CadConstraint on the X coordinate.
Definition: qgsadvanceddigitizingdockwidget.h:294
QgsAdvancedDigitizingDockWidget::softLockY
double softLockY() const
Returns the Y value of the Y soft lock. The value is NaN is the constraint isn't magnetized to a line...
Definition: qgsadvanceddigitizingdockwidget.h:325
QgsAdvancedDigitizingCanvasItem
The QgsAdvancedDigitizingCanvasItem class draws the graphical elements of the CAD tools (.
Definition: qgsadvanceddigitizingcanvasitem.h:38
QgsAdvancedDigitizingDockWidget::currentPoint
Q_DECL_DEPRECATED QgsPointXY currentPoint(bool *exists=nullptr) const
The last point.
Definition: qgsadvanceddigitizingdockwidget.h:395
QgsAdvancedDigitizingDockWidget::constraintAngle
const CadConstraint * constraintAngle() const
Returns the CadConstraint on the angle.
Definition: qgsadvanceddigitizingdockwidget.h:290
QgsAdvancedDigitizingDockWidget::softLockX
double softLockX() const
Returns the X value of the X soft lock. The value is NaN is the constraint isn't magnetized to a line...
Definition: qgsadvanceddigitizingdockwidget.h:322
qgsmessagebaritem.h
QgsAdvancedDigitizingDockWidget::pointsCount
int pointsCount() const
The number of points in the CAD point helper list.
Definition: qgsadvanceddigitizingdockwidget.h:430
QgsPoint
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:48
QgsAdvancedDigitizingDockWidget::constraintLineExtension
const CadConstraint * constraintLineExtension() const
Returns the CadConstraint.
Definition: qgsadvanceddigitizingdockwidget.h:313
QgsAdvancedDigitizingDockWidget::snappedToVertex
bool snappedToVertex() const
Is it snapped to a vertex.
Definition: qgsadvanceddigitizingdockwidget.h:435
QgsAdvancedDigitizingDockWidget::CadConstraint::NoLock
@ NoLock
Definition: qgsadvanceddigitizingdockwidget.h:97
QgsAdvancedDigitizingDockWidget::CadConstraint::relative
bool relative() const
Is the constraint in relative mode.
Definition: qgsadvanceddigitizingdockwidget.h:142
QgsAdvancedDigitizingDockWidget::constraintXyVertex
const CadConstraint * constraintXyVertex() const
Returns the CadConstraint.
Definition: qgsadvanceddigitizingdockwidget.h:319
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
QgsAdvancedDigitizingDockWidget::CadConstraint::lineEdit
QLineEdit * lineEdit() const
The line edit that manages the value of the constraint.
Definition: qgsadvanceddigitizingdockwidget.h:152
QgsAdvancedDigitizingDockWidget::lockedSnapVertices
QList< QgsPointLocator::Match > lockedSnapVertices() const
Returns the snap matches whose vertices have been locked.
Definition: qgsadvanceddigitizingdockwidget.h:337
QgsAdvancedDigitizingDockWidget::commonAngleConstraint
bool commonAngleConstraint() const
Returns true if a constraint on a common angle is active.
Definition: qgsadvanceddigitizingdockwidget.h:310
qgsdockwidget.h
QgsAdvancedDigitizingDockWidget::CadConstraint::isRepeatingLock
bool isRepeatingLock() const
Returns true if a repeating lock is set for the constraint.
Definition: qgsadvanceddigitizingdockwidget.h:137
QgsAdvancedDigitizingDockWidget::WidgetSetMode
WidgetSetMode
Type of interaction to simulate when editing values from external widget.
Definition: qgsadvanceddigitizingdockwidget.h:76
QgsAdvancedDigitizingDockWidget::CadConstraint::CadConstraint
CadConstraint(QLineEdit *lineEdit, QToolButton *lockerButton, QToolButton *relativeButton=nullptr, QToolButton *repeatingLockButton=nullptr)
Constructor for CadConstraint.
Definition: qgsadvanceddigitizingdockwidget.h:109
QgsAdvancedDigitizingDockWidget::CadConstraint::precision
int precision() const
Returns the numeric precision (decimal places) to show in the associated widget.
Definition: qgsadvanceddigitizingdockwidget.h:196
QgsAdvancedDigitizingDockWidget::previousPoint
Q_DECL_DEPRECATED QgsPointXY previousPoint(bool *exists=nullptr) const
The previous point.
Definition: qgsadvanceddigitizingdockwidget.h:410
qgssnapindicator.h
QgsAdvancedDigitizingDockWidget::CadConstraint::isLocked
bool isLocked() const
Is any kind of lock mode enabled.
Definition: qgsadvanceddigitizingdockwidget.h:129
Qgis::LineExtensionSide
LineExtensionSide
Designates whether the line extension constraint is currently soft locked with the previous or next v...
Definition: qgis.h:1795
QgsAdvancedDigitizingDockWidget::penultimatePoint
Q_DECL_DEPRECATED QgsPointXY penultimatePoint(bool *exists=nullptr) const
The penultimate point.
Definition: qgsadvanceddigitizingdockwidget.h:425
QgsMapTool
Abstract base class for all map tools. Map tools are user interactive tools for manipulating the map ...
Definition: qgsmaptool.h:70
QgsAdvancedDigitizingDockWidget::capacities
CadCapacities capacities() const
Returns the capacities.
Definition: qgsadvanceddigitizingdockwidget.h:540
SIP_DEPRECATED
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
QgsAdvancedDigitizingDockWidget::CadConstraint::lockMode
LockMode lockMode() const
The current lock mode of this constraint.
Definition: qgsadvanceddigitizingdockwidget.h:124
precision
int precision
Definition: qgswfsgetfeature.cpp:103
QgsAdvancedDigitizingDockWidget::constraintDistance
const CadConstraint * constraintDistance() const
Returns the CadConstraint on the distance.
Definition: qgsadvanceddigitizingdockwidget.h:292
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsAdvancedDigitizingDockWidget::enableAction
QAction * enableAction()
Returns the action used to enable/disable the tools.
Definition: qgsadvanceddigitizingdockwidget.h:443
QgsAdvancedDigitizingDockWidget::snappedSegment
QList< QgsPointXY > snappedSegment() const
Snapped to a segment.
Definition: qgsadvanceddigitizingdockwidget.h:440
QgsAdvancedDigitizingDockWidget::CadConstraint::LockMode
LockMode
The lock mode.
Definition: qgsadvanceddigitizingdockwidget.h:95
qgsDoubleNear
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:2265
QgsAdvancedDigitizingDockWidget::constraintM
const CadConstraint * constraintM() const
Returns the CadConstraint on the M coordinate.
Definition: qgsadvanceddigitizingdockwidget.h:308
qgis_sip.h
Q_DECLARE_OPERATORS_FOR_FLAGS
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
QgsAdvancedDigitizingDockWidget::CadConstraint
The CadConstraint is an abstract class for all basic constraints (angle/distance/x/y)....
Definition: qgsadvanceddigitizingdockwidget.h:88
QgsAdvancedDigitizingDockWidget::constructionMode
bool constructionMode() const
construction mode is used to draw intermediate points. These points won't be given any further (i....
Definition: qgsadvanceddigitizingdockwidget.h:282
QgsAdvancedDigitizingDockWidget::constraintY
const CadConstraint * constraintY() const
Returns the CadConstraint on the Y coordinate.
Definition: qgsadvanceddigitizingdockwidget.h:296
qgsadvanceddigitizingfloater.h
QgsAdvancedDigitizingDockWidget::betweenLineConstraint
Qgis::BetweenLineConstraint betweenLineConstraint() const
Returns the between line constraints which are used to place perpendicular/parallel segments to snapp...
Definition: qgsadvanceddigitizingdockwidget.h:288
QgsAdvancedDigitizingDockWidget::CadCapacity
CadCapacity
The CadCapacity enum defines the possible constraints to be set depending on the number of points in ...
Definition: qgsadvanceddigitizingdockwidget.h:61
QgsAdvancedDigitizingDockWidget
The QgsAdvancedDigitizingDockWidget class is a dockable widget used to handle the CAD tools on top of...
Definition: qgsadvanceddigitizingdockwidget.h:50
QgsAdvancedDigitizingDockWidget::lineExtensionSide
Qgis::LineExtensionSide lineExtensionSide() const
Returns on which side of the constraint line extension point, the line was created.
Definition: qgsadvanceddigitizingdockwidget.h:316
QgsAdvancedDigitizingDockWidget::CadConstraint::SoftLock
@ SoftLock
Definition: qgsadvanceddigitizingdockwidget.h:98
QgsPointLocator::Match
Definition: qgspointlocator.h:187
QgsPointXY
A class to represent a 2D point.
Definition: qgspointxy.h:58
QgsAdvancedDigitizingDockWidget::constraintZ
const CadConstraint * constraintZ() const
Returns the CadConstraint on the Z coordinate.
Definition: qgsadvanceddigitizingdockwidget.h:302
QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock
@ HardLock
Definition: qgsadvanceddigitizingdockwidget.h:99
Qgis::BetweenLineConstraint
BetweenLineConstraint
Between line constraints which can be enabled.
Definition: qgis.h:1782
QgsMapMouseEvent
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas....
Definition: qgsmapmouseevent.h:35
QgsMapLayer
Base class for all map layer types. This is the base class for all map layer types (vector,...
Definition: qgsmaplayer.h:72
qgscadutils.h
QgsDockWidget
QgsDockWidget subclass with more fine-grained control over how the widget is closed or opened.
Definition: qgsdockwidget.h:31
QgsAdvancedDigitizingDockWidget::mapPointMatch
QgsPointLocator::Match mapPointMatch() const
Returns the point locator match.
Definition: qgsadvanceddigitizingdockwidget.h:331
qgspointlocator.h
QgsAdvancedDigitizingFloater
The QgsAdvancedDigitizingFloater class is widget that floats next to the mouse pointer,...
Definition: qgsadvanceddigitizingfloater.h:40
QgsAdvancedDigitizingDockWidget::CadConstraint::value
double value() const
The value of the constraint.
Definition: qgsadvanceddigitizingdockwidget.h:147
QgsMapToolAdvancedDigitizing
The QgsMapToolAdvancedDigitizing class is a QgsMapTool which gives event directly in map coordinates ...
Definition: qgsmaptooladvanceddigitizing.h:36
QgsAdvancedDigitizingDockWidget::cadEnabled
bool cadEnabled() const
determines if CAD tools are enabled or if map tools behaves "nomally"
Definition: qgsadvanceddigitizingdockwidget.h:261
qgspointxy.h