/************************************************************************ * This file has been generated automatically from * * * * src/gui/qgsadvanceddigitizingdockwidget.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/ class QgsAdvancedDigitizingDockWidget : QgsDockWidget { %Docstring 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. %End %TypeHeaderCode #include "qgsadvanceddigitizingdockwidget.h" %End public: enum CadCapacity { AbsoluteAngle, RelativeAngle, RelativeCoordinates, }; typedef QFlags CadCapacities; enum class AdditionalConstraint { NoConstraint, Perpendicular, Parallel }; enum WidgetSetMode { ReturnPressed, }; class CadConstraint { %Docstring The CadConstraint is an abstract class for all basic constraints (angle/distance/x/y). It contains all values (locked, value, relative) and pointers to corresponding widgets. .. note:: Relative is not mandatory since it is not used for distance. %End %TypeHeaderCode #include "qgsadvanceddigitizingdockwidget.h" %End public: enum LockMode { NoLock, SoftLock, HardLock }; CadConstraint( QLineEdit *lineEdit, QToolButton *lockerButton, QToolButton *relativeButton = 0, QToolButton *repeatingLockButton = 0 ); %Docstring Constructor for CadConstraint. :param lineEdit: associated line edit for constraint value :param lockerButton: associated button for locking constraint :param relativeButton: optional button for toggling relative constraint mode :param repeatingLockButton: optional button for toggling repeating lock mode %End LockMode lockMode() const; %Docstring The current lock mode of this constraint :return: Lock mode %End bool isLocked() const; %Docstring Is any kind of lock mode enabled %End bool isRepeatingLock() const; %Docstring Returns ``True`` if a repeating lock is set for the constraint. Repeating locks are not automatically cleared after a new point is added. .. seealso:: :py:func:`setRepeatingLock` .. versionadded:: 2.16 %End bool relative() const; %Docstring Is the constraint in relative mode %End double value() const; %Docstring The value of the constraint %End QLineEdit *lineEdit() const; %Docstring The line edit that manages the value of the constraint %End void setLockMode( LockMode mode ); %Docstring Set the lock mode %End void setRepeatingLock( bool repeating ); %Docstring Sets whether a repeating lock is set for the constraint. Repeating locks are not automatically cleared after a new point is added. :param repeating: set to ``True`` to set the lock to repeat automatically .. seealso:: :py:func:`isRepeatingLock` .. versionadded:: 2.16 %End void setRelative( bool relative ); %Docstring Set if the constraint should be treated relative %End void setValue( double value, bool updateWidget = true ); %Docstring Set the value of the constraint :param value: new value for constraint :param updateWidget: set to ``False`` to prevent automatically updating the associated widget's value %End void toggleLocked(); %Docstring Toggle lock mode %End void toggleRelative(); %Docstring Toggle relative mode %End }; explicit QgsAdvancedDigitizingDockWidget( QgsMapCanvas *canvas, QWidget *parent = 0 ); %Docstring Create an advanced digitizing dock widget :param canvas: The map canvas on which the widget operates :param parent: The parent %End bool canvasKeyPressEventFilter( QKeyEvent *e ); %Docstring Filter key events to e.g. toggle construction mode or adapt constraints :param e: A mouse event (may be modified) :return: If the event is hidden (construction mode hides events from the maptool) %End bool applyConstraints( QgsMapMouseEvent *e ); %Docstring apply the CAD constraints. The will modify the position of the map event in map coordinates by applying the CAD constraints. :return: ``False`` if no solution was found (invalid constraints) %End bool alignToSegment( QgsMapMouseEvent *e, QgsAdvancedDigitizingDockWidget::CadConstraint::LockMode lockMode = QgsAdvancedDigitizingDockWidget::CadConstraint::HardLock ); %Docstring align to segment for additional constraint. If additional constraints are used, this will determine the angle to be locked depending on the snapped segment. .. versionadded:: 3.0 %End void releaseLocks( bool releaseRepeatingLocks = true ); %Docstring unlock all constraints :param releaseRepeatingLocks: set to ``False`` to preserve the lock for any constraints set to repeating lock mode .. versionadded:: 3.0 %End void clear(); %Docstring Clear any cached previous clicks and helper lines %End virtual void keyPressEvent( QKeyEvent *e ); bool cadEnabled() const; %Docstring determines if CAD tools are enabled or if map tools behaves "nomally" %End bool constructionMode() const; %Docstring construction mode is used to draw intermediate points. These points won't be given any further (i.e. to the map tools) %End AdditionalConstraint additionalConstraint() const; %Docstring Returns the additional constraints which are used to place perpendicular/parallel segments to snapped segments on the canvas %End const CadConstraint *constraintAngle() const; %Docstring Returns the ``CadConstraint`` on the angle %End const CadConstraint *constraintDistance() const; %Docstring Returns the ``CadConstraint`` on the distance %End const CadConstraint *constraintX() const; %Docstring Returns the ``CadConstraint`` on the X coordinate %End const CadConstraint *constraintY() const; %Docstring Returns the ``CadConstraint`` on the Y coordinate %End bool commonAngleConstraint() const; %Docstring Returns ``True`` if a constraint on a common angle is active %End QgsPointLocator::Match mapPointMatch() const; %Docstring Returns the point locator match .. versionadded:: 3.4 %End void clearPoints(); %Docstring Removes all points from the CAD point list .. versionadded:: 3.0 %End void addPoint( const QgsPointXY &point ); %Docstring Adds point to the CAD point list .. versionadded:: 3.0 %End void removePreviousPoint(); %Docstring Remove previous point in the CAD point list .. versionadded:: 3.8 %End void setPoints( const QList &points ); %Docstring 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. .. versionadded:: 3.0 %End QgsPointXY currentPoint( bool *exists = 0 ) const; %Docstring 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). %End QgsPointXY previousPoint( bool *exists = 0 ) const; %Docstring 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). %End QgsPointXY penultimatePoint( bool *exists = 0 ) const; %Docstring 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). %End int pointsCount() const; %Docstring The number of points in the CAD point helper list %End bool snappedToVertex() const; %Docstring Is it snapped to a vertex %End QList snappedSegment() const; %Docstring Snapped to a segment %End QAction *enableAction(); %Docstring Returns the action used to enable/disable the tools %End void enable(); %Docstring 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. %End void disable(); %Docstring Disable the widget. Normally done automatically from :py:func:`QgsMapToolAdvancedDigitizing.deactivate()` %End void updateCadPaintItem(); %Docstring Updates canvas item that displays constraints on the ma .. versionadded:: 3.0 %End void setX( const QString &value, WidgetSetMode mode ); %Docstring Set the X value on the widget. Can be used to set constraints by external widgets. :param mode: What type of interaction to emulate :param value: The value (as a QString, as it could be an expression) .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void setY( const QString &value, WidgetSetMode mode ); %Docstring Set the Y value on the widget. Can be used to set constraints by external widgets. :param mode: What type of interaction to emulate :param value: The value (as a QString, as it could be an expression) .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void setAngle( const QString &value, WidgetSetMode mode ); %Docstring Set the angle value on the widget. Can be used to set constraints by external widgets. :param mode: What type of interaction to emulate :param value: The value (as a QString, as it could be an expression) .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void setDistance( const QString &value, WidgetSetMode mode ); %Docstring Set the distance value on the widget. Can be used to set constraints by external widgets. :param mode: What type of interaction to emulate :param value: The value (as a QString, as it could be an expression) .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End signals: void pushWarning( const QString &message ); %Docstring Push a warning :param message: An informative message %End void popWarning(); %Docstring Remove any previously emitted warnings (if any) %End void pointChanged( const QgsPointXY &point ); %Docstring Sometimes a constraint may change the current point out of a mouse event. This happens normally when a constraint is toggled. :param point: The last known digitizing point. Can be used to emulate a mouse event. %End void cadEnabledChanged( bool enabled ); %Docstring Emitted whenever CAD is enabled or disabled :param enabled: Whether CAD is enabled or not .. note:: unstable API (will likely change). .. versionadded:: 3.8 %End void valueXChanged( const QString &value ); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void valueYChanged( const QString &value ); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void valueAngleChanged( const QString &value ); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void valueDistanceChanged( const QString &value ); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void lockXChanged( bool locked ); %Docstring Emitted whenever the X parameter is ``locked``. Could be used by widgets that must reflect the current advanced digitizing state. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void lockYChanged( bool locked ); %Docstring Emitted whenever the Y parameter is ``locked``. Could be used by widgets that must reflect the current advanced digitizing state. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void lockAngleChanged( bool locked ); %Docstring Emitted whenever the angle parameter is ``locked``. Could be used by widgets that must reflect the current advanced digitizing state. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void lockDistanceChanged( bool locked ); %Docstring Emitted whenever the distance parameter is ``locked``. Could be used by widgets that must reflect the current advanced digitizing state. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void relativeXChanged( bool relative ); %Docstring Emitted whenever the X parameter is toggled between absolute and relative. Could be used by widgets that must reflect the current advanced digitizing state. :param relative: Whether the X parameter is relative or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void relativeYChanged( bool relative ); %Docstring Emitted whenever the Y parameter is toggled between absolute and relative. Could be used by widgets that must reflect the current advanced digitizing state. :param relative: Whether the Y parameter is relative or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void relativeAngleChanged( bool relative ); %Docstring Emitted whenever the angleX parameter is toggled between absolute and relative. Could be used by widgets that must reflect the current advanced digitizing state. :param relative: Whether the angle parameter is relative or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void enabledChangedX( bool enabled ); %Docstring 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. :param enabled: Whether the X parameter is enabled or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void enabledChangedY( bool enabled ); %Docstring 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. :param enabled: Whether the Y parameter is enabled or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void enabledChangedAngle( bool enabled ); %Docstring 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. :param enabled: Whether the angle parameter is enabled or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void enabledChangedDistance( bool enabled ); %Docstring 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. :param enabled: Whether the distance parameter is enabled or not. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void focusOnXRequested(); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void focusOnYRequested(); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void focusOnAngleRequested(); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End void focusOnDistanceRequested(); %Docstring 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. .. note:: unstable API (will likely change) .. versionadded:: 3.8 %End private: //! event filter for line edits in the dock UI (angle/distance/x/y line edits) bool eventFilter( QObject *obj, QEvent *event ); }; QFlags operator|(QgsAdvancedDigitizingDockWidget::CadCapacity f1, QFlags f2); /************************************************************************ * This file has been generated automatically from * * * * src/gui/qgsadvanceddigitizingdockwidget.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/