Fix bug with resizing free grainline.

--HG--
branch : feature
This commit is contained in:
Roman Telezhynskyi 2017-03-14 12:24:59 +02:00
parent 76748f7688
commit 88b56f5453
2 changed files with 9 additions and 6 deletions

View File

@ -786,6 +786,7 @@ void VToolSeamAllowance::SaveResizeGrainline(qreal dLength)
VPiece newDet = oldDet;
dLength = FromPixel(dLength, *VDataTool::data.GetPatternUnit());
newDet.GetGrainlineGeometry().SetPos(m_grainLine->pos());
newDet.GetGrainlineGeometry().SetLength(QString().setNum(dLength));
SavePieceOptions* resizeCommand = new SavePieceOptions(oldDet, newDet, doc, id);
resizeCommand->setText(tr("resize grainline"));

View File

@ -381,7 +381,7 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME)
{
qreal dLen = qSqrt(ptDiff.x()*ptDiff.x() + ptDiff.y()*ptDiff.y());
qreal dAng = qAtan2(-ptDiff.y(), ptDiff.x());
dLen = dLen*qCos(dAng - m_dRotation);
dLen = -dLen*qCos(dAng - m_dRotation);
qreal dPrevLen = m_dLength;
// try with new length
if (not (m_moveType & IsMovable))
@ -394,7 +394,12 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME)
if (m_moveType & IsMovable)
{
pos = m_ptStartPos;
QLineF grainline(this->pos().x(), this->pos().y(),
this->pos().x() + dPrevLen, this->pos().y());
grainline.setAngle(qRadiansToDegrees(m_dRotation));
grainline = QLineF(grainline.p2(), grainline.p1());
grainline.setLength(m_dLength);
pos = grainline.p2();
}
else
{
@ -415,12 +420,9 @@ void VGrainlineItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME)
m_dLength = dPrevLen;
}
else
{
if (not (m_moveType & IsMovable))
{
setPos(pos);
}
}
UpdateRectangle();
Update();