diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp index 57faed240..2bcfba7c3 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp @@ -261,6 +261,10 @@ VSpline VAbstractSpline::CorrectedSpline(const VSpline &spline, const SplinePoin if (position == SplinePointPosition::FirstPoint) { QLineF line(spline.GetP1(), pos); + if (QGuiApplication::keyboardModifiers() == Qt::ShiftModifier) + { + line.setAngle(VisLine::CorrectAngle(line.angle())); + } qreal newAngle1 = line.angle(); QString newAngle1F = QString().setNum(newAngle1); @@ -287,6 +291,10 @@ VSpline VAbstractSpline::CorrectedSpline(const VSpline &spline, const SplinePoin else { QLineF line(spline.GetP4(), pos); + if (QGuiApplication::keyboardModifiers() == Qt::ShiftModifier) + { + line.setAngle(VisLine::CorrectAngle(line.angle())); + } qreal newAngle2 = line.angle(); QString newAngle2F = QString().setNum(newAngle2); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h index 148d499b0..5b77b1dc9 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h @@ -30,6 +30,7 @@ #define VABSTRACTSPLINE_H #include "../vdrawtool.h" +#include "visualization/line/visline.h" #include diff --git a/src/libs/vtools/visualization/line/visline.cpp b/src/libs/vtools/visualization/line/visline.cpp index f8ccb91ce..7a245acdf 100644 --- a/src/libs/vtools/visualization/line/visline.cpp +++ b/src/libs/vtools/visualization/line/visline.cpp @@ -43,7 +43,7 @@ VisLine::~VisLine() {} //--------------------------------------------------------------------------------------------------------------------- -qreal VisLine::CorrectAngle(const qreal &angle) const +qreal VisLine::CorrectAngle(const qreal &angle) { qreal ang = angle; if (angle > 360) diff --git a/src/libs/vtools/visualization/line/visline.h b/src/libs/vtools/visualization/line/visline.h index 75c4783d6..80b2ca141 100644 --- a/src/libs/vtools/visualization/line/visline.h +++ b/src/libs/vtools/visualization/line/visline.h @@ -44,8 +44,8 @@ public: virtual int type() const Q_DECL_OVERRIDE {return Type;} enum { Type = UserType + static_cast(Vis::Line)}; + static qreal CorrectAngle(const qreal &angle); protected: - qreal CorrectAngle(const qreal &angle) const; QPointF Ray(const QPointF &firstPoint, const qreal &angle) const; QPointF Ray(const QPointF &firstPoint) const; QLineF Axis(const QPointF &p, const qreal &angle) const;