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();
|
||||
labelHeight = labelData.GetLabelHeight();
|
||||
pos = labelData.GetPos();
|
||||
return VTextGraphicsItem::Movable;
|
||||
return VTextGraphicsItem::AllModifications;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -1215,7 +1215,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
|||
|
||||
pos = grainline.p1();
|
||||
|
||||
return VPieceItem::OnlyRotatable;
|
||||
return VPieceItem::NotMovable;
|
||||
}
|
||||
catch(const VExceptionBadId &)
|
||||
{
|
||||
|
@ -1247,7 +1247,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
|||
|
||||
if (isResizable && isRotatable)
|
||||
{
|
||||
return VPieceItem::Movable;
|
||||
return VPieceItem::AllModifications;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1261,7 +1261,7 @@ VPieceItem::MoveType VToolSeamAllowance::FindGrainlineGeometry(const VGrainlineD
|
|||
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 (m_moveType == NotMovable)
|
||||
{
|
||||
pME->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
m_ptStartPos = pos();
|
||||
m_ptStartMove = pME->scenePos();
|
||||
m_dStartLength = m_dLength;
|
||||
|
@ -317,6 +323,21 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
|||
m_dAngle = GetAngle(mapToParent(pME->pos()));
|
||||
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_polyResize.containsPoint(pME->pos(), Qt::OddEvenFill) == true)
|
||||
|
@ -334,9 +355,11 @@ void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
|||
{
|
||||
SetOverrideCursor(cursorArrowCloseHand, 1, 1);
|
||||
}
|
||||
|
||||
setZValue(ACTIVE_Z);
|
||||
Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -431,7 +454,7 @@ void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
|||
{
|
||||
if (bShort == true)
|
||||
{
|
||||
if (m_bReleased == true)
|
||||
if (m_bReleased == true && m_moveType != OnlyResizable && m_moveType != OnlyMovable)
|
||||
{
|
||||
m_eMode = mRotate;
|
||||
Update();
|
||||
|
|
|
@ -38,7 +38,7 @@ VPieceItem::VPieceItem(QGraphicsItem *pParent)
|
|||
m_eMode(VPieceItem::mNormal),
|
||||
m_bReleased(false),
|
||||
m_ptRotCenter(),
|
||||
m_moveType(Movable),
|
||||
m_moveType(AllModifications),
|
||||
m_inactiveZ(1)
|
||||
{
|
||||
m_rectBoundingBox.setTopLeft(QPointF(0, 0));
|
||||
|
|
|
@ -36,7 +36,7 @@ class VPieceItem : public QGraphicsObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum MoveType {Movable, OnlyResizable, OnlyRotatable, NotMovable, Error};
|
||||
enum MoveType {AllModifications, OnlyResizable, OnlyRotatable, OnlyMovable, NotMovable, Error};
|
||||
|
||||
explicit VPieceItem(QGraphicsItem* pParent = nullptr);
|
||||
virtual ~VPieceItem();
|
||||
|
|
Loading…
Reference in New Issue
Block a user