From 412ea278fe7b38fde5aa82b88e0bc7654781ae98 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Tue, 28 Jun 2016 09:15:48 +0300 Subject: [PATCH] Fixed issue #516. Valentina crashes when use "Point intersect line and axis" instrument. (grafted from e1677e1a2ae3eb9ddc41033299072c6b97fb2f56) --HG-- branch : release --- ChangeLog.txt | 1 + .../toollinepoint/vtoollineintersectaxis.cpp | 9 ++++++++- .../toolpoint/toolsinglepoint/vtooltriangle.cpp | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 4e363ce55..0c2f59019 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -9,6 +9,7 @@ - [#501] Rename Window->Close Window to Window->Close pattern. - [#515] Seam allowance wrong way. - [#494] Printing is not working. +- [#516] Valentina crashes when use "Point intersect line and axis" instrument. # Version 0.4.4 April 12, 2016 - Updated measurement templates with all measurements. Added new template Aldrich/Women measurements. diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp index 1fa85be6f..4c118f026 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp @@ -160,7 +160,14 @@ QPointF VToolLineIntersectAxis::FindPoint(const QLineF &axis, const QLineF &line QLineF::IntersectType intersect = axis.intersect(line, &fPoint); if (intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection) { - return fPoint; + if(axis.angle() == line.angle() || qAbs(axis.angle() - line.angle()) == 180) + { + return QPointF(); + } + else + { + return fPoint; + } } else { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp index dc5ae275a..1dd4c853b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp @@ -186,6 +186,10 @@ QPointF VToolTriangle::FindPoint(const QPointF &axisP1, const QPointF &axisP2, c { return QPointF(); } + if (axis.angle() == hypotenuse.angle() || qAbs(axis.angle() - hypotenuse.angle()) == 180) + { + return QPointF(); + } qreal step = 1;