Extend piece bounding rect. Closes #122
This commit is contained in:
parent
1cccaf097c
commit
d9f2b756a4
|
@ -4,6 +4,7 @@
|
||||||
- [smart-pattern/valentina#120] Incorrect seam allowance.
|
- [smart-pattern/valentina#120] Incorrect seam allowance.
|
||||||
- Fix export to DXF AAMA/ASTM.
|
- Fix export to DXF AAMA/ASTM.
|
||||||
- [smart-pattern/valentina#121] Incorrect elliptical arc end angle.
|
- [smart-pattern/valentina#121] Incorrect elliptical arc end angle.
|
||||||
|
- [smart-pattern/valentina#122] Extend piece bounding rect.
|
||||||
|
|
||||||
# Version 0.7.46 Mar 31, 2021
|
# Version 0.7.46 Mar 31, 2021
|
||||||
- Fix incorrect calculation of value for multisize measurements in Valentina.
|
- Fix incorrect calculation of value for multisize measurements in Valentina.
|
||||||
|
|
|
@ -932,14 +932,12 @@ void VToolSeamAllowance::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QRectF VToolSeamAllowance::boundingRect() const
|
QRectF VToolSeamAllowance::boundingRect() const
|
||||||
{
|
{
|
||||||
if (m_mainPathRect.isNull())
|
if (m_pieceBoundingRect.isNull())
|
||||||
{
|
{
|
||||||
return QGraphicsPathItem::boundingRect();
|
return QGraphicsPathItem::boundingRect();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
return m_pieceBoundingRect;
|
||||||
return m_mainPathRect;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1270,7 +1268,6 @@ VToolSeamAllowance::VToolSeamAllowance(const VToolSeamAllowanceInitData &initDat
|
||||||
: VInteractiveTool(initData.doc, initData.data, initData.id),
|
: VInteractiveTool(initData.doc, initData.data, initData.id),
|
||||||
QGraphicsPathItem(parent),
|
QGraphicsPathItem(parent),
|
||||||
m_mainPath(),
|
m_mainPath(),
|
||||||
m_mainPathRect(),
|
|
||||||
m_sceneDetails(initData.scene),
|
m_sceneDetails(initData.scene),
|
||||||
m_drawName(initData.drawName),
|
m_drawName(initData.drawName),
|
||||||
m_seamAllowance(new VNoBrushScalePathItem(this)),
|
m_seamAllowance(new VNoBrushScalePathItem(this)),
|
||||||
|
@ -1366,7 +1363,6 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren)
|
||||||
|| not detail.IsSeamAllowance() || detail.IsSeamAllowanceBuiltIn())
|
|| not detail.IsSeamAllowance() || detail.IsSeamAllowanceBuiltIn())
|
||||||
{
|
{
|
||||||
m_mainPath = QPainterPath();
|
m_mainPath = QPainterPath();
|
||||||
m_mainPathRect = QRectF();
|
|
||||||
m_seamAllowance->setBrush(QBrush(Qt::Dense7Pattern));
|
m_seamAllowance->setBrush(QBrush(Qt::Dense7Pattern));
|
||||||
path = futurePath.result();
|
path = futurePath.result();
|
||||||
}
|
}
|
||||||
|
@ -1375,7 +1371,6 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren)
|
||||||
m_seamAllowance->setBrush(QBrush(Qt::NoBrush)); // Disable if the main path was hidden
|
m_seamAllowance->setBrush(QBrush(Qt::NoBrush)); // Disable if the main path was hidden
|
||||||
// need for returning a bounding rect when main path is not visible
|
// need for returning a bounding rect when main path is not visible
|
||||||
m_mainPath = futurePath.result();
|
m_mainPath = futurePath.result();
|
||||||
m_mainPathRect = m_mainPath.controlPointRect();
|
|
||||||
path = QPainterPath();
|
path = QPainterPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1395,10 +1390,14 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren)
|
||||||
path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result()));
|
path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result()));
|
||||||
path.setFillRule(Qt::OddEvenFill);
|
path.setFillRule(Qt::OddEvenFill);
|
||||||
m_seamAllowance->setPath(path);
|
m_seamAllowance->setPath(path);
|
||||||
|
|
||||||
|
m_pieceBoundingRect = m_seamAllowance->path().controlPointRect();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_seamAllowance->setPath(QPainterPath());
|
m_seamAllowance->setPath(QPainterPath());
|
||||||
|
|
||||||
|
m_pieceBoundingRect = m_mainPath.controlPointRect();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VAbstractApplication::VApp()->IsAppInGUIMode())
|
if (VAbstractApplication::VApp()->IsAppInGUIMode())
|
||||||
|
|
|
@ -176,7 +176,7 @@ private:
|
||||||
Q_DISABLE_COPY(VToolSeamAllowance)
|
Q_DISABLE_COPY(VToolSeamAllowance)
|
||||||
|
|
||||||
QPainterPath m_mainPath; // Must be first to prevent crash
|
QPainterPath m_mainPath; // Must be first to prevent crash
|
||||||
QRectF m_mainPathRect;
|
QRectF m_pieceBoundingRect{};
|
||||||
|
|
||||||
/** @brief sceneDetails pointer to the scene. */
|
/** @brief sceneDetails pointer to the scene. */
|
||||||
VMainGraphicsScene *m_sceneDetails;
|
VMainGraphicsScene *m_sceneDetails;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user