From 1d0b5790ae03f64f7d73c31b987fc6c7f8eac4a4 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 22 Oct 2018 14:43:06 +0300 Subject: [PATCH] Be more pedantic. Show warning for case where Valentina cannot build a seam allowance. --HG-- branch : develop --- src/libs/vlayout/vabstractpiece.cpp | 6 ++++-- src/libs/vlayout/vabstractpiece.h | 2 +- src/libs/vlayout/vlayoutpiece.cpp | 4 ++-- src/libs/vpatterndb/vpiece.cpp | 2 +- src/test/ValentinaTest/tst_vabstractpiece.cpp | 6 +++--- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/libs/vlayout/vabstractpiece.cpp b/src/libs/vlayout/vabstractpiece.cpp index 41aa9527c..bd2477bbe 100644 --- a/src/libs/vlayout/vabstractpiece.cpp +++ b/src/libs/vlayout/vabstractpiece.cpp @@ -30,6 +30,7 @@ #include "vabstractpiece_p.h" #include "../vmisc/vabstractapplication.h" #include "../vgeometry/vpointf.h" +#include "../ifc/exception/vexception.h" #include #include @@ -861,7 +862,7 @@ void VAbstractPiece::SetSAWidth(qreal value) } //--------------------------------------------------------------------------------------------------------------------- -QVector VAbstractPiece::Equidistant(QVector points, qreal width) +QVector VAbstractPiece::Equidistant(QVector points, qreal width, const QString &name) { if (width < 0) { @@ -874,7 +875,8 @@ QVector VAbstractPiece::Equidistant(QVector points, qreal wid points = CorrectEquidistantPoints(points); if ( points.size() < 3 ) { - qDebug()<<"Not enough points for building the equidistant."; + const QString errorMsg = QObject::tr("Piece '%1'. Not enough points to build seam allowance.").arg(name); + qApp->IsPedantic() ? throw VException(errorMsg) : qWarning() << errorMsg; return QVector(); } diff --git a/src/libs/vlayout/vabstractpiece.h b/src/libs/vlayout/vabstractpiece.h index 2c357041b..8d054d60a 100644 --- a/src/libs/vlayout/vabstractpiece.h +++ b/src/libs/vlayout/vabstractpiece.h @@ -183,7 +183,7 @@ public: qreal GetMy() const; void SetMy(qreal value); - static QVector Equidistant(QVector points, qreal width); + static QVector Equidistant(QVector points, qreal width, const QString &name); static qreal SumTrapezoids(const QVector &points); static QVector CheckLoops(const QVector &points); static QVector EkvPoint(QVector points, const VSAPoint &p1Line1, VSAPoint p2Line1, diff --git a/src/libs/vlayout/vlayoutpiece.cpp b/src/libs/vlayout/vlayoutpiece.cpp index 9f068a0a4..65f62e197 100644 --- a/src/libs/vlayout/vlayoutpiece.cpp +++ b/src/libs/vlayout/vlayoutpiece.cpp @@ -902,7 +902,7 @@ void VLayoutPiece::SetLayoutAllowancePoints() { if (IsSeamAllowance() && not IsSeamAllowanceBuiltIn()) { - d->layoutAllowance = Equidistant(PrepareAllowance(GetSeamAllowancePoints()), d->layoutWidth); + d->layoutAllowance = Equidistant(PrepareAllowance(GetSeamAllowancePoints()), d->layoutWidth, GetName()); if (d->layoutAllowance.isEmpty() == false) { d->layoutAllowance.removeLast(); @@ -910,7 +910,7 @@ void VLayoutPiece::SetLayoutAllowancePoints() } else { - d->layoutAllowance = Equidistant(PrepareAllowance(GetContourPoints()), d->layoutWidth); + d->layoutAllowance = Equidistant(PrepareAllowance(GetContourPoints()), d->layoutWidth, GetName()); if (d->layoutAllowance.isEmpty() == false) { d->layoutAllowance.removeLast(); diff --git a/src/libs/vpatterndb/vpiece.cpp b/src/libs/vpatterndb/vpiece.cpp index 31096bab3..6b7b1a52b 100644 --- a/src/libs/vpatterndb/vpiece.cpp +++ b/src/libs/vpatterndb/vpiece.cpp @@ -473,7 +473,7 @@ QVector VPiece::SeamAllowancePoints(const VContainer *data) const } } - return Equidistant(pointsEkv, width); + return Equidistant(pointsEkv, width, GetName()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/test/ValentinaTest/tst_vabstractpiece.cpp b/src/test/ValentinaTest/tst_vabstractpiece.cpp index 8d1697a00..a2ba698d5 100644 --- a/src/test/ValentinaTest/tst_vabstractpiece.cpp +++ b/src/test/ValentinaTest/tst_vabstractpiece.cpp @@ -132,7 +132,7 @@ void TST_VAbstractPiece::EquidistantRemoveLoop() const QFETCH(qreal, width); QFETCH(QVector, ekvOrig); - const QVector ekv = VAbstractPiece::Equidistant(points, width); + const QVector ekv = VAbstractPiece::Equidistant(points, width, QString()); // Begin comparison Comparison(ekv, ekvOrig); @@ -4922,7 +4922,7 @@ void TST_VAbstractPiece::BrokenDetailEquidistant() const QFETCH(qreal, width); QFETCH(QVector, ekvOrig); - const QVector ekv = VAbstractPiece::Equidistant(points, width);// Take result + const QVector ekv = VAbstractPiece::Equidistant(points, width, QString());// Take result // Begin comparison Comparison(ekv, ekvOrig); @@ -4951,7 +4951,7 @@ void TST_VAbstractPiece::EquidistantAngleType() const QFETCH(qreal, width); QFETCH(QVector, ekvOrig); - const QVector ekv = VAbstractPiece::Equidistant(points, width);// Take result + const QVector ekv = VAbstractPiece::Equidistant(points, width, QString());// Take result // Begin comparison Comparison(ekv, ekvOrig);