mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
move enums to qgis.h
This commit is contained in:
parent
f736ea74ec
commit
2dc440f804
@ -1340,3 +1340,23 @@ Qgis.AltitudeBinding.Centroid.__doc__ = "Clamp just centroid of feature"
|
||||
Qgis.AltitudeBinding.__doc__ = 'Altitude binding.\n\n.. versionadded:: 3.26\n\n' + '* ``Vertex``: ' + Qgis.AltitudeBinding.Vertex.__doc__ + '\n' + '* ``Centroid``: ' + Qgis.AltitudeBinding.Centroid.__doc__
|
||||
# --
|
||||
Qgis.AltitudeBinding.baseClass = Qgis
|
||||
# monkey patching scoped based enum
|
||||
Qgis.NoConstraint = Qgis.BetweenLineConstraint.NoConstraint
|
||||
Qgis.NoConstraint.is_monkey_patched = True
|
||||
Qgis.BetweenLineConstraint.NoConstraint.__doc__ = "No additional constraint"
|
||||
Qgis.Perpendicular = Qgis.BetweenLineConstraint.Perpendicular
|
||||
Qgis.Perpendicular.is_monkey_patched = True
|
||||
Qgis.BetweenLineConstraint.Perpendicular.__doc__ = "Perpendicular"
|
||||
Qgis.Parallel = Qgis.BetweenLineConstraint.Parallel
|
||||
Qgis.Parallel.is_monkey_patched = True
|
||||
Qgis.BetweenLineConstraint.Parallel.__doc__ = "Parallel"
|
||||
Qgis.BetweenLineConstraint.__doc__ = 'Between line constraints which can be enabled\n\n' + '* ``NoConstraint``: ' + Qgis.BetweenLineConstraint.NoConstraint.__doc__ + '\n' + '* ``Perpendicular``: ' + Qgis.BetweenLineConstraint.Perpendicular.__doc__ + '\n' + '* ``Parallel``: ' + Qgis.BetweenLineConstraint.Parallel.__doc__
|
||||
# --
|
||||
Qgis.BetweenLineConstraint.baseClass = Qgis
|
||||
# monkey patching scoped based enum
|
||||
Qgis.LineExtensionSide.BeforeVertex.__doc__ = ""
|
||||
Qgis.LineExtensionSide.AfterVertex.__doc__ = ""
|
||||
Qgis.LineExtensionSide.NoVertex.__doc__ = ""
|
||||
Qgis.LineExtensionSide.__doc__ = 'Designates whether the line extension constraint is currently soft locked\nwith the previous or next vertex of the locked one.\n\n.. versionadded:: 3.26\n\n' + '* ``BeforeVertex``: ' + Qgis.LineExtensionSide.BeforeVertex.__doc__ + '\n' + '* ``AfterVertex``: ' + Qgis.LineExtensionSide.AfterVertex.__doc__ + '\n' + '* ``NoVertex``: ' + Qgis.LineExtensionSide.NoVertex.__doc__
|
||||
# --
|
||||
Qgis.LineExtensionSide.baseClass = Qgis
|
||||
|
||||
@ -869,6 +869,20 @@ The development version
|
||||
Centroid,
|
||||
};
|
||||
|
||||
enum class BetweenLineConstraint
|
||||
{
|
||||
NoConstraint,
|
||||
Perpendicular,
|
||||
Parallel
|
||||
};
|
||||
|
||||
enum class LineExtensionSide
|
||||
{
|
||||
BeforeVertex,
|
||||
AfterVertex,
|
||||
NoVertex
|
||||
};
|
||||
|
||||
static const double DEFAULT_SEARCH_RADIUS_MM;
|
||||
|
||||
static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
|
||||
|
||||
@ -59,14 +59,6 @@ Structure returned from :py:func:`~QgsCadUtils.alignMapPoint` method
|
||||
#include "qgscadutils.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
enum LineExtensionSide
|
||||
{
|
||||
BeforeVertex,
|
||||
AfterVertex,
|
||||
NoVertex
|
||||
};
|
||||
|
||||
bool valid;
|
||||
|
||||
QgsPointXY finalMapPoint;
|
||||
@ -77,7 +69,7 @@ Structure returned from :py:func:`~QgsCadUtils.alignMapPoint` method
|
||||
|
||||
double softLockCommonAngle;
|
||||
|
||||
LineExtensionSide softLockLineExtension;
|
||||
Qgis::LineExtensionSide softLockLineExtension;
|
||||
double softLockX;
|
||||
double softLockY;
|
||||
};
|
||||
|
||||
@ -1,15 +1,3 @@
|
||||
# The following has been generated automatically from src/gui/qgsadvanceddigitizingdockwidget.h
|
||||
QgsAdvancedDigitizingDockWidget.CadCapacities.baseClass = QgsAdvancedDigitizingDockWidget
|
||||
CadCapacities = QgsAdvancedDigitizingDockWidget # dirty hack since SIP seems to introduce the flags in module
|
||||
# monkey patching scoped based enum
|
||||
QgsAdvancedDigitizingDockWidget.NoConstraint = QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.NoConstraint
|
||||
QgsAdvancedDigitizingDockWidget.NoConstraint.is_monkey_patched = True
|
||||
QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.NoConstraint.__doc__ = "No additional constraint"
|
||||
QgsAdvancedDigitizingDockWidget.Perpendicular = QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Perpendicular
|
||||
QgsAdvancedDigitizingDockWidget.Perpendicular.is_monkey_patched = True
|
||||
QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Perpendicular.__doc__ = "Perpendicular"
|
||||
QgsAdvancedDigitizingDockWidget.Parallel = QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Parallel
|
||||
QgsAdvancedDigitizingDockWidget.Parallel.is_monkey_patched = True
|
||||
QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Parallel.__doc__ = "Parallel"
|
||||
QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.__doc__ = 'Between line constraints which can be enabled\n\n' + '* ``NoConstraint``: ' + QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.NoConstraint.__doc__ + '\n' + '* ``Perpendicular``: ' + QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Perpendicular.__doc__ + '\n' + '* ``Parallel``: ' + QgsAdvancedDigitizingDockWidget.BetweenLineConstraint.Parallel.__doc__
|
||||
# --
|
||||
|
||||
@ -36,13 +36,6 @@ by implementing filters called from :py:class:`QgsMapToolAdvancedDigitizing`.
|
||||
typedef QFlags<QgsAdvancedDigitizingDockWidget::CadCapacity> CadCapacities;
|
||||
|
||||
|
||||
enum class BetweenLineConstraint
|
||||
{
|
||||
NoConstraint,
|
||||
Perpendicular,
|
||||
Parallel
|
||||
};
|
||||
|
||||
enum WidgetSetMode
|
||||
{
|
||||
ReturnPressed,
|
||||
@ -259,7 +252,7 @@ Sets whether M is enabled
|
||||
construction mode is used to draw intermediate points. These points won't be given any further (i.e. to the map tools)
|
||||
%End
|
||||
|
||||
BetweenLineConstraint betweenLineConstraint() const;
|
||||
Qgis::BetweenLineConstraint betweenLineConstraint() const;
|
||||
%Docstring
|
||||
Returns the between line constraints which are used to place
|
||||
perpendicular/parallel segments to snapped segments on the canvas
|
||||
@ -304,7 +297,7 @@ Returns ``True`` if a constraint on a common angle is active
|
||||
Returns the ``CadConstraint``
|
||||
%End
|
||||
|
||||
QgsCadUtils::AlignMapPointOutput::LineExtensionSide lineExtensionSide() const;
|
||||
Qgis::LineExtensionSide lineExtensionSide() const;
|
||||
%Docstring
|
||||
Returns on which side of the constraint line extension point, the line was created
|
||||
%End
|
||||
|
||||
@ -790,7 +790,7 @@ void QgsMapToolEditMeshFrame::cadCanvasPressEvent( QgsMapMouseEvent *e )
|
||||
|
||||
if ( e->button() == Qt::LeftButton &&
|
||||
( !mCadDockWidget->cadEnabled() ||
|
||||
mCadDockWidget->betweenLineConstraint() == QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint ) )
|
||||
mCadDockWidget->betweenLineConstraint() == Qgis::BetweenLineConstraint::NoConstraint ) )
|
||||
mLeftButtonPressed = true;
|
||||
|
||||
switch ( mCurrentState )
|
||||
|
||||
@ -1435,6 +1435,30 @@ class CORE_EXPORT Qgis
|
||||
};
|
||||
Q_ENUM( AltitudeBinding )
|
||||
|
||||
/**
|
||||
* Between line constraints which can be enabled
|
||||
*/
|
||||
enum class BetweenLineConstraint SIP_MONKEYPATCH_SCOPEENUM : int
|
||||
{
|
||||
NoConstraint, //!< No additional constraint
|
||||
Perpendicular, //!< Perpendicular
|
||||
Parallel //!< Parallel
|
||||
};
|
||||
Q_ENUM( BetweenLineConstraint )
|
||||
|
||||
/**
|
||||
* Designates whether the line extension constraint is currently soft locked
|
||||
* with the previous or next vertex of the locked one.
|
||||
* \since QGIS 3.26
|
||||
*/
|
||||
enum class LineExtensionSide : int
|
||||
{
|
||||
BeforeVertex,
|
||||
AfterVertex,
|
||||
NoVertex
|
||||
};
|
||||
Q_ENUM( LineExtensionSide )
|
||||
|
||||
/**
|
||||
* Identify search radius in mm
|
||||
* \since QGIS 2.3
|
||||
|
||||
@ -42,7 +42,7 @@ QgsCadUtils::AlignMapPointOutput QgsCadUtils::alignMapPoint( const QgsPointXY &o
|
||||
res.valid = true;
|
||||
res.softLockCommonAngle = -1;
|
||||
|
||||
res.softLockLineExtension = QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex;
|
||||
res.softLockLineExtension = Qgis::LineExtensionSide::NoVertex;
|
||||
res.softLockX = std::numeric_limits<double>::quiet_NaN();
|
||||
res.softLockY = std::numeric_limits<double>::quiet_NaN();
|
||||
|
||||
@ -382,13 +382,13 @@ QgsCadUtils::AlignMapPointOutput QgsCadUtils::alignMapPoint( const QgsPointXY &o
|
||||
bool checked = checkLineExtension( geom.vertexAt( snap.vertexIndex() - 1 ) );
|
||||
if ( checked )
|
||||
{
|
||||
res.softLockLineExtension = QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex;
|
||||
res.softLockLineExtension = Qgis::LineExtensionSide::BeforeVertex;
|
||||
}
|
||||
|
||||
checked = checkLineExtension( geom.vertexAt( snap.vertexIndex() + 1 ) );
|
||||
if ( checked )
|
||||
{
|
||||
res.softLockLineExtension = QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex;
|
||||
res.softLockLineExtension = Qgis::LineExtensionSide::AfterVertex;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -434,7 +434,7 @@ QgsCadUtils::AlignMapPointOutput QgsCadUtils::alignMapPoint( const QgsPointXY &o
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( res.softLockLineExtension != QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex )
|
||||
else if ( res.softLockLineExtension != Qgis::LineExtensionSide::NoVertex )
|
||||
{
|
||||
const QgsPointLocator::Match snap = ctx.lockedSnapVertices().last();
|
||||
const QgsFeature feature = snap.layer()->getFeature( snap.featureId() );
|
||||
@ -444,7 +444,7 @@ QgsCadUtils::AlignMapPointOutput QgsCadUtils::alignMapPoint( const QgsPointXY &o
|
||||
const QgsPointXY lineExtensionPt1 = snap.point();
|
||||
|
||||
QgsPointXY lineExtensionPt2;
|
||||
if ( res.softLockLineExtension == QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex )
|
||||
if ( res.softLockLineExtension == Qgis::LineExtensionSide::AfterVertex )
|
||||
{
|
||||
lineExtensionPt2 = QgsPointXY( geom.vertexAt( snap.vertexIndex() + 1 ) );
|
||||
}
|
||||
@ -456,7 +456,7 @@ QgsCadUtils::AlignMapPointOutput QgsCadUtils::alignMapPoint( const QgsPointXY &o
|
||||
const bool intersect = QgsGeometryUtils::lineCircleIntersection( previousPt, ctx.distanceConstraint.value, lineExtensionPt1, lineExtensionPt2, point );
|
||||
if ( !intersect )
|
||||
{
|
||||
res.softLockLineExtension = QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex;
|
||||
res.softLockLineExtension = Qgis::LineExtensionSide::NoVertex;
|
||||
res.valid &= QgsGeometryUtils::lineCircleIntersection( previousPt, ctx.distanceConstraint.value, previousPt, point, point );
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,19 +69,6 @@ class CORE_EXPORT QgsCadUtils
|
||||
class AlignMapPointOutput
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Designates whether the line extension constraint is currently soft locked
|
||||
* with the previous or next vertex of the locked one.
|
||||
* \since QGIS 3.26
|
||||
*/
|
||||
enum LineExtensionSide
|
||||
{
|
||||
BeforeVertex,
|
||||
AfterVertex,
|
||||
NoVertex
|
||||
};
|
||||
|
||||
//! Whether the combination of constraints is actually valid
|
||||
bool valid;
|
||||
|
||||
@ -103,7 +90,7 @@ class CORE_EXPORT QgsCadUtils
|
||||
//! Angle (in degrees) to which we have soft-locked ourselves (if not set it is -1)
|
||||
double softLockCommonAngle;
|
||||
|
||||
LineExtensionSide softLockLineExtension;
|
||||
Qgis::LineExtensionSide softLockLineExtension;
|
||||
double softLockX;
|
||||
double softLockY;
|
||||
};
|
||||
|
||||
@ -108,7 +108,7 @@ void QgsAdvancedDigitizingCanvasItem::paint( QPainter *painter )
|
||||
}
|
||||
|
||||
// Draw segment par/per input
|
||||
if ( mAdvancedDigitizingDockWidget->betweenLineConstraint() != QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint && hasSnappedSegment )
|
||||
if ( mAdvancedDigitizingDockWidget->betweenLineConstraint() != Qgis::BetweenLineConstraint::NoConstraint && hasSnappedSegment )
|
||||
{
|
||||
painter->setPen( mConstruction2Pen );
|
||||
painter->drawLine( snapSegmentPix1, snapSegmentPix2 );
|
||||
@ -223,7 +223,7 @@ void QgsAdvancedDigitizingCanvasItem::paint( QPainter *painter )
|
||||
}
|
||||
|
||||
// Draw constr
|
||||
if ( mAdvancedDigitizingDockWidget->betweenLineConstraint() == QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint )
|
||||
if ( mAdvancedDigitizingDockWidget->betweenLineConstraint() == Qgis::BetweenLineConstraint::NoConstraint )
|
||||
{
|
||||
if ( curPointExist && previousPointExist )
|
||||
{
|
||||
@ -249,7 +249,7 @@ void QgsAdvancedDigitizingCanvasItem::paint( QPainter *painter )
|
||||
|
||||
auto lineExtensionSide = mAdvancedDigitizingDockWidget->lineExtensionSide();
|
||||
if ( mAdvancedDigitizingDockWidget->constraintLineExtension()->isLocked() &&
|
||||
lineExtensionSide != QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex &&
|
||||
lineExtensionSide != Qgis::LineExtensionSide::NoVertex &&
|
||||
mAdvancedDigitizingDockWidget->lockedSnapVertices().length() )
|
||||
{
|
||||
painter->setPen( mLockedPen );
|
||||
@ -261,7 +261,7 @@ void QgsAdvancedDigitizingCanvasItem::paint( QPainter *painter )
|
||||
const QgsGeometry geom = feature.geometry();
|
||||
|
||||
QgsPoint vertex;
|
||||
if ( lineExtensionSide == QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex )
|
||||
if ( lineExtensionSide == Qgis::LineExtensionSide::BeforeVertex )
|
||||
{
|
||||
vertex = geom.vertexAt( snap.vertexIndex() - 1 );
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
|
||||
mLineExtensionConstraint.reset( new CadConstraint( new QLineEdit(), new QToolButton() ) );
|
||||
mXyVertexConstraint.reset( new CadConstraint( new QLineEdit(), new QToolButton() ) );
|
||||
|
||||
mBetweenLineConstraint = BetweenLineConstraint::NoConstraint;
|
||||
mBetweenLineConstraint = Qgis::BetweenLineConstraint::NoConstraint;
|
||||
|
||||
mMapCanvas->installEventFilter( this );
|
||||
mAngleLineEdit->installEventFilter( this );
|
||||
@ -441,15 +441,15 @@ void QgsAdvancedDigitizingDockWidget::betweenLineConstraintClicked( bool activat
|
||||
{
|
||||
if ( !activated )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::NoConstraint );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::NoConstraint );
|
||||
}
|
||||
else if ( sender() == mParallelAction )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::Parallel );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Parallel );
|
||||
}
|
||||
else if ( sender() == mPerpendicularAction )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::Perpendicular );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Perpendicular );
|
||||
}
|
||||
}
|
||||
|
||||
@ -546,7 +546,7 @@ void QgsAdvancedDigitizingDockWidget::releaseLocks( bool releaseRepeatingLocks )
|
||||
{
|
||||
// release all locks except construction mode
|
||||
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::NoConstraint );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::NoConstraint );
|
||||
|
||||
if ( releaseRepeatingLocks )
|
||||
{
|
||||
@ -793,7 +793,7 @@ void QgsAdvancedDigitizingDockWidget::lockConstraint( bool activate /* default t
|
||||
// deactivate perpendicular/parallel if angle has been activated
|
||||
if ( constraint == mAngleConstraint.get() )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::NoConstraint );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::NoConstraint );
|
||||
}
|
||||
|
||||
// run a fake map mouse event to update the paint item
|
||||
@ -827,11 +827,11 @@ void QgsAdvancedDigitizingDockWidget::constraintFocusOut()
|
||||
updateConstraintValue( constraint, lineEdit->text(), true );
|
||||
}
|
||||
|
||||
void QgsAdvancedDigitizingDockWidget::lockBetweenLineConstraint( BetweenLineConstraint constraint )
|
||||
void QgsAdvancedDigitizingDockWidget::lockBetweenLineConstraint( Qgis::BetweenLineConstraint constraint )
|
||||
{
|
||||
mBetweenLineConstraint = constraint;
|
||||
mPerpendicularAction->setChecked( constraint == BetweenLineConstraint::Perpendicular );
|
||||
mParallelAction->setChecked( constraint == BetweenLineConstraint::Parallel );
|
||||
mPerpendicularAction->setChecked( constraint == Qgis::BetweenLineConstraint::Perpendicular );
|
||||
mParallelAction->setChecked( constraint == Qgis::BetweenLineConstraint::Parallel );
|
||||
}
|
||||
|
||||
void QgsAdvancedDigitizingDockWidget::lockParameterlessConstraint( bool activate /* default true */ )
|
||||
@ -931,7 +931,7 @@ void QgsAdvancedDigitizingDockWidget::updateCapacity( bool updateUIwithoutChange
|
||||
|
||||
if ( !absoluteAngle )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::NoConstraint );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::NoConstraint );
|
||||
}
|
||||
|
||||
// absolute angle = azimuth, relative = from previous line
|
||||
@ -1259,7 +1259,7 @@ QList<QgsPointXY> QgsAdvancedDigitizingDockWidget::snapSegmentToAllLayers( const
|
||||
|
||||
bool QgsAdvancedDigitizingDockWidget::alignToSegment( QgsMapMouseEvent *e, CadConstraint::LockMode lockMode )
|
||||
{
|
||||
if ( mBetweenLineConstraint == BetweenLineConstraint::NoConstraint )
|
||||
if ( mBetweenLineConstraint == Qgis::BetweenLineConstraint::NoConstraint )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -1281,7 +1281,7 @@ bool QgsAdvancedDigitizingDockWidget::alignToSegment( QgsMapMouseEvent *e, CadCo
|
||||
angle -= std::atan2( previousPt.y() - penultimatePt.y(), previousPt.x() - penultimatePt.x() );
|
||||
}
|
||||
|
||||
if ( mBetweenLineConstraint == BetweenLineConstraint::Perpendicular )
|
||||
if ( mBetweenLineConstraint == Qgis::BetweenLineConstraint::Perpendicular )
|
||||
{
|
||||
angle += M_PI_2;
|
||||
}
|
||||
@ -1292,7 +1292,7 @@ bool QgsAdvancedDigitizingDockWidget::alignToSegment( QgsMapMouseEvent *e, CadCo
|
||||
mAngleConstraint->setLockMode( lockMode );
|
||||
if ( lockMode == CadConstraint::HardLock )
|
||||
{
|
||||
mBetweenLineConstraint = BetweenLineConstraint::NoConstraint;
|
||||
mBetweenLineConstraint = Qgis::BetweenLineConstraint::NoConstraint;
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -1599,15 +1599,15 @@ bool QgsAdvancedDigitizingDockWidget::filterKeyPress( QKeyEvent *e )
|
||||
|
||||
if ( !parallel && !perpendicular )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::Perpendicular );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Perpendicular );
|
||||
}
|
||||
else if ( perpendicular )
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::Parallel );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Parallel );
|
||||
}
|
||||
else
|
||||
{
|
||||
lockBetweenLineConstraint( BetweenLineConstraint::NoConstraint );
|
||||
lockBetweenLineConstraint( Qgis::BetweenLineConstraint::NoConstraint );
|
||||
}
|
||||
e->accept();
|
||||
|
||||
|
||||
@ -68,16 +68,6 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
Q_DECLARE_FLAGS( CadCapacities, CadCapacity )
|
||||
Q_FLAG( CadCapacities )
|
||||
|
||||
/**
|
||||
* Between line constraints which can be enabled
|
||||
*/
|
||||
enum class BetweenLineConstraint SIP_MONKEYPATCH_SCOPEENUM : int
|
||||
{
|
||||
NoConstraint, //!< No additional constraint
|
||||
Perpendicular, //!< Perpendicular
|
||||
Parallel //!< Parallel
|
||||
};
|
||||
|
||||
/**
|
||||
* Type of interaction to simulate when editing values from external widget
|
||||
* \note unstable API (will likely change)
|
||||
@ -295,7 +285,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
* Returns the between line constraints which are used to place
|
||||
* perpendicular/parallel segments to snapped segments on the canvas
|
||||
*/
|
||||
BetweenLineConstraint betweenLineConstraint() const { return mBetweenLineConstraint; }
|
||||
Qgis::BetweenLineConstraint betweenLineConstraint() const { return mBetweenLineConstraint; }
|
||||
//! Returns the \a CadConstraint on the angle
|
||||
const CadConstraint *constraintAngle() const { return mAngleConstraint.get(); }
|
||||
//! Returns the \a CadConstraint on the distance
|
||||
@ -323,7 +313,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
const CadConstraint *constraintLineExtension() const { return mLineExtensionConstraint.get(); }
|
||||
|
||||
//! Returns on which side of the constraint line extension point, the line was created
|
||||
QgsCadUtils::AlignMapPointOutput::LineExtensionSide lineExtensionSide() const { return mSoftLockLineExtension; }
|
||||
Qgis::LineExtensionSide lineExtensionSide() const { return mSoftLockLineExtension; }
|
||||
|
||||
//! Returns the \a CadConstraint
|
||||
const CadConstraint *constraintXyVertex() const { return mXyVertexConstraint.get(); }
|
||||
@ -928,7 +918,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
void updateCapacity( bool updateUIwithoutChange = false );
|
||||
|
||||
//! defines the between line constraint to be used (no/parallel/perpendicular)
|
||||
void lockBetweenLineConstraint( BetweenLineConstraint constraint );
|
||||
void lockBetweenLineConstraint( Qgis::BetweenLineConstraint constraint );
|
||||
|
||||
/**
|
||||
* Returns the first snapped segment. Will try to snap a segment using all layers
|
||||
@ -1007,7 +997,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
std::unique_ptr< CadConstraint > mMConstraint;
|
||||
std::unique_ptr< CadConstraint > mLineExtensionConstraint;
|
||||
std::unique_ptr< CadConstraint > mXyVertexConstraint;
|
||||
BetweenLineConstraint mBetweenLineConstraint;
|
||||
Qgis::BetweenLineConstraint mBetweenLineConstraint;
|
||||
double mCommonAngleConstraint; // if 0: do not snap to common angles
|
||||
|
||||
// point list and current snap point / segment
|
||||
@ -1029,7 +1019,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
|
||||
QgsPointLocator::Match mLastSnapMatch;
|
||||
|
||||
// Extra constraint context
|
||||
QgsCadUtils::AlignMapPointOutput::LineExtensionSide mSoftLockLineExtension;
|
||||
Qgis::LineExtensionSide mSoftLockLineExtension;
|
||||
double mSoftLockX;
|
||||
double mSoftLockY;
|
||||
QQueue< QgsPointLocator::Match > mLockedSnapVertices;
|
||||
|
||||
@ -659,14 +659,14 @@ void TestQgsAdvancedDigitizing::perpendicularConstraint()
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->currentPointV2(), QgsPoint( 0, 4 ) );
|
||||
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint );
|
||||
Qgis::BetweenLineConstraint::NoConstraint );
|
||||
|
||||
// digitizing a first vertex
|
||||
utils.mouseClick( 5, 5, Qt::LeftButton );
|
||||
|
||||
mAdvancedDigitizingDockWidget->lockBetweenLineConstraint( QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::Perpendicular );
|
||||
mAdvancedDigitizingDockWidget->lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Perpendicular );
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::Perpendicular );
|
||||
Qgis::BetweenLineConstraint::Perpendicular );
|
||||
|
||||
// select the previous digitized line
|
||||
utils.mouseClick( 0.1, 4, Qt::LeftButton );
|
||||
@ -1022,7 +1022,7 @@ void TestQgsAdvancedDigitizing::releaseLockAfterDisable()
|
||||
QVERIFY( mAdvancedDigitizingDockWidget->cadEnabled() );
|
||||
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint );
|
||||
Qgis::BetweenLineConstraint::NoConstraint );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintAngle()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintDistance()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintX()->isLocked() );
|
||||
@ -1042,7 +1042,7 @@ void TestQgsAdvancedDigitizing::releaseLockAfterDisable()
|
||||
|
||||
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint );
|
||||
Qgis::BetweenLineConstraint::NoConstraint );
|
||||
QVERIFY( mAdvancedDigitizingDockWidget->constraintAngle()->isLocked() );
|
||||
QVERIFY( mAdvancedDigitizingDockWidget->constraintDistance()->isLocked() );
|
||||
QVERIFY( mAdvancedDigitizingDockWidget->constraintX()->isLocked() );
|
||||
@ -1059,7 +1059,7 @@ void TestQgsAdvancedDigitizing::releaseLockAfterDisable()
|
||||
|
||||
// all constraints should be deactivated
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint );
|
||||
Qgis::BetweenLineConstraint::NoConstraint );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintAngle()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintDistance()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintX()->isLocked() );
|
||||
@ -1073,14 +1073,14 @@ void TestQgsAdvancedDigitizing::releaseLockAfterDisable()
|
||||
mAdvancedDigitizingDockWidget->enableAction()->trigger();
|
||||
|
||||
// enable another constraints
|
||||
mAdvancedDigitizingDockWidget->lockBetweenLineConstraint( QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::Perpendicular );
|
||||
mAdvancedDigitizingDockWidget->lockBetweenLineConstraint( Qgis::BetweenLineConstraint::Perpendicular );
|
||||
mAdvancedDigitizingDockWidget->mXyVertexAction->trigger();
|
||||
mAdvancedDigitizingDockWidget->mLineExtensionAction->trigger();
|
||||
|
||||
QVERIFY( mAdvancedDigitizingDockWidget->cadEnabled() );
|
||||
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::Perpendicular );
|
||||
Qgis::BetweenLineConstraint::Perpendicular );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintAngle()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintDistance()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintX()->isLocked() );
|
||||
@ -1097,7 +1097,7 @@ void TestQgsAdvancedDigitizing::releaseLockAfterDisable()
|
||||
|
||||
// all constraints should be deactivated
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->betweenLineConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::BetweenLineConstraint::NoConstraint );
|
||||
Qgis::BetweenLineConstraint::NoConstraint );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintAngle()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintDistance()->isLocked() );
|
||||
QVERIFY( !mAdvancedDigitizingDockWidget->constraintX()->isLocked() );
|
||||
|
||||
@ -312,7 +312,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
// without constraint
|
||||
QgsCadUtils::AlignMapPointOutput result = QgsCadUtils::alignMapPoint( QgsPointXY( 45, 20 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 45, 20 ) );
|
||||
|
||||
// only line extension
|
||||
@ -329,12 +329,12 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.5, 0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 10, 0 ) );
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 50.5, 0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 50.4, -0.2 ) );
|
||||
|
||||
// extension + x
|
||||
@ -342,7 +342,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 0.2, 25.2 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 0, 25 ) );
|
||||
|
||||
// extension + rel x
|
||||
@ -350,7 +350,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 0, 30.2 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( -10, 30 ) );
|
||||
|
||||
// extension + y
|
||||
@ -359,7 +359,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( -0.2, 25.2 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 0, 25 ) );
|
||||
|
||||
// extension + rel y
|
||||
@ -367,7 +367,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 70.2, -100 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::BeforeVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 70, -10 ) );
|
||||
|
||||
// extension + x + y
|
||||
@ -376,7 +376,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 10, 0 ) );
|
||||
|
||||
context.xConstraint = QgsCadUtils::AlignMapPointConstraint( true, false, 11 );
|
||||
@ -385,7 +385,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
// this time, the soft lock shouldn't be activated
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 11, 0 ) );
|
||||
|
||||
// extension + angle
|
||||
@ -396,7 +396,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 40.2 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 10, 40 ) );
|
||||
|
||||
// extension + common angle
|
||||
@ -406,7 +406,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 40.2 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockCommonAngle, 135.0 );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.finalMapPoint, QgsPointXY( 10, 40 ) );
|
||||
|
||||
// extension + distance ( without intersection )
|
||||
@ -415,7 +415,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 42.0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::NoVertex );
|
||||
QGSCOMPARENEARPOINT( result.finalMapPoint, QgsPointXY( 23.273, 27.399 ), 10e-3 );
|
||||
|
||||
// extension + distance ( with intersection )
|
||||
@ -423,7 +423,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 42.0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::AfterVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::AfterVertex );
|
||||
QGSCOMPARENEARPOINT( result.finalMapPoint, QgsPointXY( 10, 42.361 ), 10e-3 );
|
||||
|
||||
// extension + distance + x
|
||||
@ -431,7 +431,7 @@ void TestQgsCadUtils::testLineExtension()
|
||||
|
||||
result = QgsCadUtils::alignMapPoint( QgsPointXY( 10.2, 42.0 ), context );
|
||||
QVERIFY( result.valid );
|
||||
QCOMPARE( result.softLockLineExtension, QgsCadUtils::AlignMapPointOutput::LineExtensionSide::NoVertex );
|
||||
QCOMPARE( result.softLockLineExtension, Qgis::LineExtensionSide::NoVertex );
|
||||
QGSCOMPARENEARPOINT( result.finalMapPoint, QgsPointXY( 9.9, 42.271 ), 10e-3 );
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user