Block actions with grainline depend on restrictions.
--HG-- branch : feature
This commit is contained in:
parent
83b9e3e5ff
commit
5fbdb4f7f0
|
@ -1187,7 +1187,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindLabelGeometry(const VPatternLabelDa
|
||||||
labelWidth = labelData.GetLabelWidth();
|
labelWidth = labelData.GetLabelWidth();
|
||||||
labelHeight = labelData.GetLabelHeight();
|
labelHeight = labelData.GetLabelHeight();
|
||||||
pos = labelData.GetPos();
|
pos = labelData.GetPos();
|
||||||
return VTextGraphicsItem::Movable;
|
return VTextGraphicsItem::AllModifications;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1215,7 +1215,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
||||||
|
|
||||||
pos = grainline.p1();
|
pos = grainline.p1();
|
||||||
|
|
||||||
return VPieceItem::OnlyRotatable;
|
return VPieceItem::NotMovable;
|
||||||
}
|
}
|
||||||
catch(const VExceptionBadId &)
|
catch(const VExceptionBadId &)
|
||||||
{
|
{
|
||||||
|
@ -1247,7 +1247,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
||||||
|
|
||||||
if (isResizable && isRotatable)
|
if (isResizable && isRotatable)
|
||||||
{
|
{
|
||||||
return VPieceItem::Movable;
|
return VPieceItem::AllModifications;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1261,7 +1261,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
||||||
return VPieceItem::OnlyRotatable;
|
return VPieceItem::OnlyRotatable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return VPieceItem::NotMovable;
|
return VPieceItem::OnlyMovable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -310,6 +310,12 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
{
|
{
|
||||||
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
||||||
{
|
{
|
||||||
|
if (m_moveType == NotMovable)
|
||||||
|
{
|
||||||
|
pME->ignore();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_ptStartPos = pos();
|
m_ptStartPos = pos();
|
||||||
m_ptStartMove = pME->scenePos();
|
m_ptStartMove = pME->scenePos();
|
||||||
m_dStartLength = m_dLength;
|
m_dStartLength = m_dLength;
|
||||||
|
@ -317,6 +323,21 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
m_dAngle = GetAngle(mapToParent(pME->pos()));
|
m_dAngle = GetAngle(mapToParent(pME->pos()));
|
||||||
m_ptRotCenter = m_ptCenter;
|
m_ptRotCenter = m_ptCenter;
|
||||||
|
|
||||||
|
if (m_moveType == OnlyRotatable)
|
||||||
|
{
|
||||||
|
if (m_eMode != mRotate)
|
||||||
|
{
|
||||||
|
m_eMode = mMove;
|
||||||
|
SetOverrideCursor(cursorArrowCloseHand, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (m_moveType == OnlyMovable)
|
||||||
|
{
|
||||||
|
m_eMode = mMove;
|
||||||
|
SetOverrideCursor(cursorArrowCloseHand, 1, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (m_eMode != mRotate)
|
if (m_eMode != mRotate)
|
||||||
{
|
{
|
||||||
if (m_polyResize.containsPoint(pME->pos(), Qt::OddEvenFill) == true)
|
if (m_polyResize.containsPoint(pME->pos(), Qt::OddEvenFill) == true)
|
||||||
|
@ -334,10 +355,12 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
{
|
{
|
||||||
SetOverrideCursor(cursorArrowCloseHand, 1, 1);
|
SetOverrideCursor(cursorArrowCloseHand, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
setZValue(ACTIVE_Z);
|
setZValue(ACTIVE_Z);
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -431,7 +454,7 @@ void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
{
|
{
|
||||||
if (bShort == true)
|
if (bShort == true)
|
||||||
{
|
{
|
||||||
if (m_bReleased == true)
|
if (m_bReleased == true && m_moveType != OnlyResizable && m_moveType != OnlyMovable)
|
||||||
{
|
{
|
||||||
m_eMode = mRotate;
|
m_eMode = mRotate;
|
||||||
Update();
|
Update();
|
||||||
|
|
|
@ -38,7 +38,7 @@ VPieceItem::VPieceItem(QGraphicsItem *pParent)
|
||||||
m_eMode(VPieceItem::mNormal),
|
m_eMode(VPieceItem::mNormal),
|
||||||
m_bReleased(false),
|
m_bReleased(false),
|
||||||
m_ptRotCenter(),
|
m_ptRotCenter(),
|
||||||
m_moveType(Movable),
|
m_moveType(AllModifications),
|
||||||
m_inactiveZ(1)
|
m_inactiveZ(1)
|
||||||
{
|
{
|
||||||
m_rectBoundingBox.setTopLeft(QPointF(0, 0));
|
m_rectBoundingBox.setTopLeft(QPointF(0, 0));
|
||||||
|
|
|
@ -36,7 +36,7 @@ class VPieceItem : public QGraphicsObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum MoveType {Movable, OnlyResizable, OnlyRotatable, NotMovable, Error};
|
enum MoveType {AllModifications, OnlyResizable, OnlyRotatable, OnlyMovable, NotMovable, Error};
|
||||||
|
|
||||||
explicit VPieceItem(QGraphicsItem* pParent = nullptr);
|
explicit VPieceItem(QGraphicsItem* pParent = nullptr);
|
||||||
virtual ~VPieceItem();
|
virtual ~VPieceItem();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user