Be more pedantic. Show warning for case where Valentina cannot build a seam
allowance. --HG-- branch : develop
This commit is contained in:
parent
fb4d935ac4
commit
1d0b5790ae
|
@ -30,6 +30,7 @@
|
||||||
#include "vabstractpiece_p.h"
|
#include "vabstractpiece_p.h"
|
||||||
#include "../vmisc/vabstractapplication.h"
|
#include "../vmisc/vabstractapplication.h"
|
||||||
#include "../vgeometry/vpointf.h"
|
#include "../vgeometry/vpointf.h"
|
||||||
|
#include "../ifc/exception/vexception.h"
|
||||||
|
|
||||||
#include <QLineF>
|
#include <QLineF>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
|
@ -861,7 +862,7 @@ void VAbstractPiece::SetSAWidth(qreal value)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QVector<QPointF> VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal width)
|
QVector<QPointF> VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal width, const QString &name)
|
||||||
{
|
{
|
||||||
if (width < 0)
|
if (width < 0)
|
||||||
{
|
{
|
||||||
|
@ -874,7 +875,8 @@ QVector<QPointF> VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal wid
|
||||||
points = CorrectEquidistantPoints(points);
|
points = CorrectEquidistantPoints(points);
|
||||||
if ( points.size() < 3 )
|
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<QPointF>();
|
return QVector<QPointF>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -183,7 +183,7 @@ public:
|
||||||
qreal GetMy() const;
|
qreal GetMy() const;
|
||||||
void SetMy(qreal value);
|
void SetMy(qreal value);
|
||||||
|
|
||||||
static QVector<QPointF> Equidistant(QVector<VSAPoint> points, qreal width);
|
static QVector<QPointF> Equidistant(QVector<VSAPoint> points, qreal width, const QString &name);
|
||||||
static qreal SumTrapezoids(const QVector<QPointF> &points);
|
static qreal SumTrapezoids(const QVector<QPointF> &points);
|
||||||
static QVector<QPointF> CheckLoops(const QVector<QPointF> &points);
|
static QVector<QPointF> CheckLoops(const QVector<QPointF> &points);
|
||||||
static QVector<QPointF> EkvPoint(QVector<QPointF> points, const VSAPoint &p1Line1, VSAPoint p2Line1,
|
static QVector<QPointF> EkvPoint(QVector<QPointF> points, const VSAPoint &p1Line1, VSAPoint p2Line1,
|
||||||
|
|
|
@ -902,7 +902,7 @@ void VLayoutPiece::SetLayoutAllowancePoints()
|
||||||
{
|
{
|
||||||
if (IsSeamAllowance() && not IsSeamAllowanceBuiltIn())
|
if (IsSeamAllowance() && not IsSeamAllowanceBuiltIn())
|
||||||
{
|
{
|
||||||
d->layoutAllowance = Equidistant(PrepareAllowance(GetSeamAllowancePoints()), d->layoutWidth);
|
d->layoutAllowance = Equidistant(PrepareAllowance(GetSeamAllowancePoints()), d->layoutWidth, GetName());
|
||||||
if (d->layoutAllowance.isEmpty() == false)
|
if (d->layoutAllowance.isEmpty() == false)
|
||||||
{
|
{
|
||||||
d->layoutAllowance.removeLast();
|
d->layoutAllowance.removeLast();
|
||||||
|
@ -910,7 +910,7 @@ void VLayoutPiece::SetLayoutAllowancePoints()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
d->layoutAllowance = Equidistant(PrepareAllowance(GetContourPoints()), d->layoutWidth);
|
d->layoutAllowance = Equidistant(PrepareAllowance(GetContourPoints()), d->layoutWidth, GetName());
|
||||||
if (d->layoutAllowance.isEmpty() == false)
|
if (d->layoutAllowance.isEmpty() == false)
|
||||||
{
|
{
|
||||||
d->layoutAllowance.removeLast();
|
d->layoutAllowance.removeLast();
|
||||||
|
|
|
@ -473,7 +473,7 @@ QVector<QPointF> VPiece::SeamAllowancePoints(const VContainer *data) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Equidistant(pointsEkv, width);
|
return Equidistant(pointsEkv, width, GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -132,7 +132,7 @@ void TST_VAbstractPiece::EquidistantRemoveLoop() const
|
||||||
QFETCH(qreal, width);
|
QFETCH(qreal, width);
|
||||||
QFETCH(QVector<QPointF>, ekvOrig);
|
QFETCH(QVector<QPointF>, ekvOrig);
|
||||||
|
|
||||||
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width);
|
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width, QString());
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
Comparison(ekv, ekvOrig);
|
Comparison(ekv, ekvOrig);
|
||||||
|
@ -4922,7 +4922,7 @@ void TST_VAbstractPiece::BrokenDetailEquidistant() const
|
||||||
QFETCH(qreal, width);
|
QFETCH(qreal, width);
|
||||||
QFETCH(QVector<QPointF>, ekvOrig);
|
QFETCH(QVector<QPointF>, ekvOrig);
|
||||||
|
|
||||||
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width);// Take result
|
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width, QString());// Take result
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
Comparison(ekv, ekvOrig);
|
Comparison(ekv, ekvOrig);
|
||||||
|
@ -4951,7 +4951,7 @@ void TST_VAbstractPiece::EquidistantAngleType() const
|
||||||
QFETCH(qreal, width);
|
QFETCH(qreal, width);
|
||||||
QFETCH(QVector<QPointF>, ekvOrig);
|
QFETCH(QVector<QPointF>, ekvOrig);
|
||||||
|
|
||||||
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width);// Take result
|
const QVector<QPointF> ekv = VAbstractPiece::Equidistant(points, width, QString());// Take result
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
Comparison(ekv, ekvOrig);
|
Comparison(ekv, ekvOrig);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user