Rotation bugs fixed
--HG-- branch : feature
This commit is contained in:
parent
9a64ddf6a3
commit
6effc2b5cd
|
@ -678,11 +678,10 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document
|
||||||
detail.GetPatternPieceData().SetLabelWidth(dLW);
|
detail.GetPatternPieceData().SetLabelWidth(dLW);
|
||||||
qreal dLH = element.attribute(VToolDetail::AttrHeight, "0").toDouble();
|
qreal dLH = element.attribute(VToolDetail::AttrHeight, "0").toDouble();
|
||||||
detail.GetPatternPieceData().SetLabelHeight(dLH);
|
detail.GetPatternPieceData().SetLabelHeight(dLH);
|
||||||
qDebug() << "HEIGHT" <<
|
|
||||||
detail.GetPatternPieceData().GetPos() <<
|
|
||||||
detail.GetPatternPieceData().GetLabelHeight();
|
|
||||||
int iFS = element.attribute(VToolDetail::AttrFont, "0").toInt();
|
int iFS = element.attribute(VToolDetail::AttrFont, "0").toInt();
|
||||||
detail.GetPatternPieceData().SetFontSize(iFS);
|
detail.GetPatternPieceData().SetFontSize(iFS);
|
||||||
|
qreal dRot = element.attribute(VToolDetail::AttrRotation, "0").toDouble();
|
||||||
|
detail.GetPatternPieceData().SetRotation(dRot);
|
||||||
|
|
||||||
QDomNodeList nodeListMCP = element.childNodes();
|
QDomNodeList nodeListMCP = element.childNodes();
|
||||||
for (int iMCP = 0; iMCP < nodeListMCP.count(); ++iMCP)
|
for (int iMCP = 0; iMCP < nodeListMCP.count(); ++iMCP)
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
<xs:element name="labelPosition" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
<xs:element name="labelPosition" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
<xs:element name="labelSize" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
<xs:element name="labelSize" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
<xs:element name="fontSize" type="xs:unsignedInt" minOccurs="0" maxOccurs="1"></xs:element>
|
<xs:element name="fontSize" type="xs:unsignedInt" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="rotation" type="xs:double" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
<xs:element name="gradation" minOccurs="0" maxOccurs="1">
|
<xs:element name="gradation" minOccurs="0" maxOccurs="1">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
|
@ -360,6 +361,7 @@
|
||||||
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
<xs:attribute name="width" type="xs:double"></xs:attribute>
|
<xs:attribute name="width" type="xs:double"></xs:attribute>
|
||||||
<xs:attribute name="height" type="xs:double"></xs:attribute>
|
<xs:attribute name="height" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="rotation" type="xs:double"></xs:attribute>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="node" maxOccurs="unbounded">
|
<xs:element name="node" maxOccurs="unbounded">
|
||||||
|
|
|
@ -68,8 +68,9 @@ const QString VAbstractPattern::TagCustomerName = QStringLiteral("customer");
|
||||||
const QString VAbstractPattern::TagCompanyName = QStringLiteral("company");
|
const QString VAbstractPattern::TagCompanyName = QStringLiteral("company");
|
||||||
const QString VAbstractPattern::TagCreationDate = QStringLiteral("created");
|
const QString VAbstractPattern::TagCreationDate = QStringLiteral("created");
|
||||||
const QString VAbstractPattern::TagLabelPos = QStringLiteral("labelPosition");
|
const QString VAbstractPattern::TagLabelPos = QStringLiteral("labelPosition");
|
||||||
const QString VAbstractPattern::TagLabelSize = QStringLiteral("labelSize");
|
const QString VAbstractPattern::TagLabelSize = QStringLiteral("labelSize");
|
||||||
const QString VAbstractPattern::TagLabelFont = QStringLiteral("fontSize");
|
const QString VAbstractPattern::TagLabelFont = QStringLiteral("fontSize");
|
||||||
|
const QString VAbstractPattern::TagLabelRot = QStringLiteral("rotation");
|
||||||
|
|
||||||
const QString VAbstractPattern::AttrName = QStringLiteral("name");
|
const QString VAbstractPattern::AttrName = QStringLiteral("name");
|
||||||
const QString VAbstractPattern::AttrVisible = QStringLiteral("visible");
|
const QString VAbstractPattern::AttrVisible = QStringLiteral("visible");
|
||||||
|
@ -1157,6 +1158,27 @@ void VAbstractPattern::SetFontSize(int iFS)
|
||||||
emit patternChanged(false);
|
emit patternChanged(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VAbstractPattern::GetRotation() const
|
||||||
|
{
|
||||||
|
bool bOK;
|
||||||
|
qreal dRot = UniqueTagText(TagLabelRot).toDouble(&bOK);
|
||||||
|
if (bOK == false)
|
||||||
|
{
|
||||||
|
dRot = 0;
|
||||||
|
}
|
||||||
|
return dRot;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetRotation(qreal dRot)
|
||||||
|
{
|
||||||
|
CheckTagExists(TagLabelRot);
|
||||||
|
setTagText(TagLabelRot, QString::number(dRot, 'f', 3));
|
||||||
|
modified = true;
|
||||||
|
emit patternChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VAbstractPattern::GetImage() const
|
QString VAbstractPattern::GetImage() const
|
||||||
{
|
{
|
||||||
|
@ -1283,7 +1305,7 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag)
|
||||||
const QStringList tags = QStringList() << TagUnit << TagImage << TagAuthor << TagDescription << TagNotes
|
const QStringList tags = QStringList() << TagUnit << TagImage << TagAuthor << TagDescription << TagNotes
|
||||||
<< TagGradation << TagPatternName << TagPatternNum << TagCompanyName
|
<< TagGradation << TagPatternName << TagPatternNum << TagCompanyName
|
||||||
<< TagCustomerName << TagCreationDate << TagLabelPos << TagLabelSize
|
<< TagCustomerName << TagCreationDate << TagLabelPos << TagLabelSize
|
||||||
<< TagLabelFont;
|
<< TagLabelFont << TagLabelRot;
|
||||||
switch (tags.indexOf(tag))
|
switch (tags.indexOf(tag))
|
||||||
{
|
{
|
||||||
case 0: //TagUnit
|
case 0: //TagUnit
|
||||||
|
@ -1365,6 +1387,12 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 14:
|
||||||
|
{
|
||||||
|
element = createElement(TagLabelRot);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return QDomElement();
|
return QDomElement();
|
||||||
|
|
|
@ -123,6 +123,8 @@ public:
|
||||||
void SetLabelSize(QSizeF sz);
|
void SetLabelSize(QSizeF sz);
|
||||||
int GetFontSize() const;
|
int GetFontSize() const;
|
||||||
void SetFontSize(int iFS);
|
void SetFontSize(int iFS);
|
||||||
|
qreal GetRotation() const;
|
||||||
|
void SetRotation(qreal dRot);
|
||||||
|
|
||||||
QString GetImage() const;
|
QString GetImage() const;
|
||||||
QString GetImageExtension() const;
|
QString GetImageExtension() const;
|
||||||
|
@ -182,6 +184,7 @@ public:
|
||||||
static const QString TagLabelPos;
|
static const QString TagLabelPos;
|
||||||
static const QString TagLabelSize;
|
static const QString TagLabelSize;
|
||||||
static const QString TagLabelFont;
|
static const QString TagLabelFont;
|
||||||
|
static const QString TagLabelRot;
|
||||||
|
|
||||||
static const QString AttrName;
|
static const QString AttrName;
|
||||||
static const QString AttrVisible;
|
static const QString AttrVisible;
|
||||||
|
|
|
@ -35,6 +35,7 @@ VPatternPieceData::VPatternPieceData() :
|
||||||
m_iFontSize = MIN_FONT_SIZE;
|
m_iFontSize = MIN_FONT_SIZE;
|
||||||
// 0 means unknown width
|
// 0 means unknown width
|
||||||
m_dLabelWidth = 0;
|
m_dLabelWidth = 0;
|
||||||
|
m_dRotation = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -169,4 +170,16 @@ void VPatternPieceData::SetFontSize(int iSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VPatternPieceData::GetRotation() const
|
||||||
|
{
|
||||||
|
return m_dRotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPatternPieceData::SetRotation(qreal dRot)
|
||||||
|
{
|
||||||
|
m_dRotation = dRot;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,8 @@ public:
|
||||||
void SetLabelHeight(qreal dLabelH);
|
void SetLabelHeight(qreal dLabelH);
|
||||||
int GetFontSize() const;
|
int GetFontSize() const;
|
||||||
void SetFontSize(int iSize);
|
void SetFontSize(int iSize);
|
||||||
|
qreal GetRotation() const;
|
||||||
|
void SetRotation(qreal dRot);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/** @brief Pattern piece name
|
/** @brief Pattern piece name
|
||||||
|
@ -116,6 +118,9 @@ private:
|
||||||
/** @brief Label font size
|
/** @brief Label font size
|
||||||
*/
|
*/
|
||||||
int m_iFontSize;
|
int m_iFontSize;
|
||||||
|
/** @brief Label rotation
|
||||||
|
*/
|
||||||
|
qreal m_dRotation;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VPATTERNPIECEDATA_H
|
#endif // VPATTERNPIECEDATA_H
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
|
|
||||||
#define RESIZE_SQUARE 30
|
#define RESIZE_SQUARE 30
|
||||||
#define ROTATE_CIRCLE 20
|
#define ROTATE_CIRCLE 20
|
||||||
|
#define ROTATE_RECT 60
|
||||||
|
#define ROTATE_ARC 50
|
||||||
#define MIN_W 120
|
#define MIN_W 120
|
||||||
#define MIN_H 60
|
#define MIN_H 60
|
||||||
#define MIN_FONT_SIZE 12
|
#define MIN_FONT_SIZE 12
|
||||||
|
@ -71,6 +73,7 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
||||||
{
|
{
|
||||||
Q_UNUSED(widget);
|
Q_UNUSED(widget);
|
||||||
painter->fillRect(option->rect, QColor(251, 251, 175));
|
painter->fillRect(option->rect, QColor(251, 251, 175));
|
||||||
|
painter->setRenderHints(QPainter::Antialiasing);
|
||||||
|
|
||||||
// draw text lines
|
// draw text lines
|
||||||
int iY = 0;
|
int iY = 0;
|
||||||
|
@ -117,6 +120,16 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
||||||
ROTATE_CIRCLE,
|
ROTATE_CIRCLE,
|
||||||
ROTATE_CIRCLE
|
ROTATE_CIRCLE
|
||||||
);
|
);
|
||||||
|
painter->setPen(QPen(Qt::black, 3));
|
||||||
|
painter->setBrush(Qt::NoBrush);
|
||||||
|
int iTop = ROTATE_RECT - ROTATE_ARC;
|
||||||
|
int iLeft = ROTATE_RECT - ROTATE_ARC;
|
||||||
|
int iRight = m_rectBoundingBox.width() - ROTATE_RECT;
|
||||||
|
int iBottom = m_rectBoundingBox.height() - ROTATE_RECT;
|
||||||
|
painter->drawArc(iLeft, iTop, ROTATE_ARC, ROTATE_ARC, 180*16, -90*16);
|
||||||
|
painter->drawArc(iRight, iTop, ROTATE_ARC, ROTATE_ARC, 90*16, -90*16);
|
||||||
|
painter->drawArc(iLeft, iBottom, ROTATE_ARC, ROTATE_ARC, 270*16, -90*16);
|
||||||
|
painter->drawArc(iRight, iBottom, ROTATE_ARC, ROTATE_ARC, 0*16, -90*16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -124,7 +137,7 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VTextGraphicsItem::Reset()
|
void VTextGraphicsItem::Reset()
|
||||||
{
|
{
|
||||||
return;
|
qDebug() << "RESET" << m_eMode << m_liLines.count();
|
||||||
m_eMode = mNormal;
|
m_eMode = mNormal;
|
||||||
m_bReleased = false;
|
m_bReleased = false;
|
||||||
Update();
|
Update();
|
||||||
|
@ -163,6 +176,7 @@ void VTextGraphicsItem::SetSize(qreal fW, qreal fH)
|
||||||
m_rectResize.setTopLeft(QPointF(fW - RESIZE_SQUARE, fH - RESIZE_SQUARE));
|
m_rectResize.setTopLeft(QPointF(fW - RESIZE_SQUARE, fH - RESIZE_SQUARE));
|
||||||
m_rectResize.setWidth(RESIZE_SQUARE);
|
m_rectResize.setWidth(RESIZE_SQUARE);
|
||||||
m_rectResize.setHeight(RESIZE_SQUARE);
|
m_rectResize.setHeight(RESIZE_SQUARE);
|
||||||
|
setTransformOriginPoint(m_rectBoundingBox.center());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -172,6 +186,12 @@ void VTextGraphicsItem::Update()
|
||||||
UpdateBox();
|
UpdateBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
int VTextGraphicsItem::GetFontSize() const
|
||||||
|
{
|
||||||
|
return m_font.pixelSize();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QRectF VTextGraphicsItem::boundingRect() const
|
QRectF VTextGraphicsItem::boundingRect() const
|
||||||
{
|
{
|
||||||
|
@ -183,7 +203,6 @@ void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME)
|
||||||
{
|
{
|
||||||
if (pME->button() == Qt::LeftButton)
|
if (pME->button() == Qt::LeftButton)
|
||||||
{
|
{
|
||||||
qDebug() << "PRESS" << m_eMode;
|
|
||||||
m_ptStartPos = pos();
|
m_ptStartPos = pos();
|
||||||
m_ptStart = pME->scenePos();
|
m_ptStart = pME->scenePos();
|
||||||
m_szStart = m_rectBoundingBox.size();
|
m_szStart = m_rectBoundingBox.size();
|
||||||
|
@ -202,7 +221,7 @@ void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME)
|
||||||
}
|
}
|
||||||
setZValue(3);
|
setZValue(3);
|
||||||
UpdateBox();
|
UpdateBox();
|
||||||
qDebug() << "PRESS finished" << m_eMode;
|
qDebug() << "PRESS" << m_eMode << m_liLines.count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,7 +231,6 @@ void VTextGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
QPointF ptDiff = pME->scenePos() - m_ptStart;
|
QPointF ptDiff = pME->scenePos() - m_ptStart;
|
||||||
if (m_eMode == mMove)
|
if (m_eMode == mMove)
|
||||||
{
|
{
|
||||||
//moveBy(ptDiff.x(), ptDiff.y());
|
|
||||||
setPos(m_ptStartPos + ptDiff);
|
setPos(m_ptStartPos + ptDiff);
|
||||||
UpdateBox();
|
UpdateBox();
|
||||||
}
|
}
|
||||||
|
@ -231,6 +249,7 @@ void VTextGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
}
|
}
|
||||||
double dAng = 180*(GetAngle(pME->scenePos()) - m_dAngle)/M_PI;
|
double dAng = 180*(GetAngle(pME->scenePos()) - m_dAngle)/M_PI;
|
||||||
setRotation(m_dRotation + dAng);
|
setRotation(m_dRotation + dAng);
|
||||||
|
emit SignalRotated(rotation());
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -243,7 +262,7 @@ void VTextGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
double dDist = fabs(pME->scenePos().x() - m_ptStart.x()) + fabs(pME->scenePos().y() - m_ptStart.y());
|
double dDist = fabs(pME->scenePos().x() - m_ptStart.x()) + fabs(pME->scenePos().y() - m_ptStart.y());
|
||||||
bool bShort = (dDist < 2);
|
bool bShort = (dDist < 2);
|
||||||
|
|
||||||
qDebug() << "RELEASE" << m_eMode << dDist;
|
qDebug() << "RELEASE" << m_eMode << dDist << m_liLines.count();
|
||||||
|
|
||||||
if (m_eMode == mMove || m_eMode == mResize)
|
if (m_eMode == mMove || m_eMode == mResize)
|
||||||
{ // when released in mMove or mResize mode
|
{ // when released in mMove or mResize mode
|
||||||
|
@ -280,6 +299,7 @@ void VTextGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_bReleased = true;
|
m_bReleased = true;
|
||||||
|
qDebug() << "RELEASE finished" << m_eMode << m_liLines.count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ public:
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
int GetFontSize() const;
|
||||||
QRectF boundingRect() const;
|
QRectF boundingRect() const;
|
||||||
void AddLine(const TextLine& tl);
|
void AddLine(const TextLine& tl);
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
|
@ -57,6 +57,7 @@ const QString VToolDetail::AttrHeight = QStringLiteral("height");
|
||||||
const QString VToolDetail::AttrNodeType = QStringLiteral("nodeType");
|
const QString VToolDetail::AttrNodeType = QStringLiteral("nodeType");
|
||||||
const QString VToolDetail::AttrReverse = QStringLiteral("reverse");
|
const QString VToolDetail::AttrReverse = QStringLiteral("reverse");
|
||||||
const QString VToolDetail::AttrFont = QStringLiteral("fontSize");
|
const QString VToolDetail::AttrFont = QStringLiteral("fontSize");
|
||||||
|
const QString VToolDetail::AttrRotation = QStringLiteral("rotation");
|
||||||
|
|
||||||
const QString VToolDetail::NodeTypeContour = QStringLiteral("Contour");
|
const QString VToolDetail::NodeTypeContour = QStringLiteral("Contour");
|
||||||
const QString VToolDetail::NodeTypeModeling = QStringLiteral("Modeling");
|
const QString VToolDetail::NodeTypeModeling = QStringLiteral("Modeling");
|
||||||
|
@ -118,7 +119,7 @@ VToolDetail::VToolDetail(VAbstractPattern *doc, VContainer *data, const quint32
|
||||||
this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus
|
this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus
|
||||||
|
|
||||||
connect(scene, &VMainGraphicsScene::EnableToolMove, this, &VToolDetail::EnableToolMove);
|
connect(scene, &VMainGraphicsScene::EnableToolMove, this, &VToolDetail::EnableToolMove);
|
||||||
connect(scene, &VMainGraphicsScene::MouseLeftPressed, this, &VToolDetail::ResetChildren);
|
connect(scene, &VMainGraphicsScene::ItemClicked, this, &VToolDetail::ResetChildren);
|
||||||
if (typeCreation == Source::FromGui || typeCreation == Source::FromTool)
|
if (typeCreation == Source::FromGui || typeCreation == Source::FromTool)
|
||||||
{
|
{
|
||||||
AddToFile();
|
AddToFile();
|
||||||
|
@ -131,10 +132,12 @@ VToolDetail::VToolDetail(VAbstractPattern *doc, VContainer *data, const quint32
|
||||||
|
|
||||||
connect(dataLabel, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMoveDetail);
|
connect(dataLabel, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMoveDetail);
|
||||||
connect(dataLabel, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizeDetail);
|
connect(dataLabel, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizeDetail);
|
||||||
|
connect(dataLabel, &VTextGraphicsItem::SignalRotated, this, &VToolDetail::SaveRotationDetail);
|
||||||
connect(dataLabel, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll);
|
connect(dataLabel, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll);
|
||||||
|
|
||||||
connect(patternInfo, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMovePattern);
|
connect(patternInfo, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMovePattern);
|
||||||
connect(patternInfo, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizePattern);
|
connect(patternInfo, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizePattern);
|
||||||
|
connect(patternInfo, &VTextGraphicsItem::SignalRotated, this, &VToolDetail::SaveRotationPattern);
|
||||||
connect(patternInfo, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll);
|
connect(patternInfo, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll);
|
||||||
connect(doc, &VAbstractPattern::patternChanged, this, &VToolDetail::UpdatePatternInfo);
|
connect(doc, &VAbstractPattern::patternChanged, this, &VToolDetail::UpdatePatternInfo);
|
||||||
|
|
||||||
|
@ -356,6 +359,7 @@ void VToolDetail::AddToFile()
|
||||||
doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth());
|
doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth());
|
||||||
doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight());
|
doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight());
|
||||||
doc->SetAttribute(domData, AttrFont, data.GetFontSize());
|
doc->SetAttribute(domData, AttrFont, data.GetFontSize());
|
||||||
|
doc->SetAttribute(domData, AttrRotation, data.GetRotation());
|
||||||
|
|
||||||
for (int i = 0; i < data.GetMCPCount(); ++i)
|
for (int i = 0; i < data.GetMCPCount(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -404,6 +408,7 @@ void VToolDetail::RefreshDataInFile()
|
||||||
doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth());
|
doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth());
|
||||||
doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight());
|
doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight());
|
||||||
doc->SetAttribute(domData, AttrFont, data.GetFontSize());
|
doc->SetAttribute(domData, AttrFont, data.GetFontSize());
|
||||||
|
doc->SetAttribute(domData, AttrRotation, data.GetRotation());
|
||||||
|
|
||||||
for (int i = 0; i < data.GetMCPCount(); ++i)
|
for (int i = 0; i < data.GetMCPCount(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -650,11 +655,10 @@ void VToolDetail::UpdateLabel()
|
||||||
{
|
{
|
||||||
const VDetail detail = VAbstractTool::data.GetDetail(id);
|
const VDetail detail = VAbstractTool::data.GetDetail(id);
|
||||||
|
|
||||||
qDebug() << "Update label";
|
|
||||||
const VPatternPieceData& data = detail.GetPatternPieceData();
|
const VPatternPieceData& data = detail.GetPatternPieceData();
|
||||||
if (data.GetLetter().isEmpty() == false || data.GetName().isEmpty() == false || data.GetMCPCount() > 0)
|
if (data.GetLetter().isEmpty() == false || data.GetName().isEmpty() == false || data.GetMCPCount() > 0)
|
||||||
{
|
{
|
||||||
dataLabel->Reset();
|
//dataLabel->Reset();
|
||||||
|
|
||||||
QString qsText = "Cut %1 of %2%3";
|
QString qsText = "Cut %1 of %2%3";
|
||||||
QStringList qslPlace;
|
QStringList qslPlace;
|
||||||
|
@ -688,6 +692,7 @@ void VToolDetail::UpdateLabel()
|
||||||
}
|
}
|
||||||
|
|
||||||
dataLabel->setPos(data.GetPos());
|
dataLabel->setPos(data.GetPos());
|
||||||
|
dataLabel->setRotation(data.GetRotation());
|
||||||
dataLabel->Update();
|
dataLabel->Update();
|
||||||
dataLabel->show();
|
dataLabel->show();
|
||||||
}
|
}
|
||||||
|
@ -703,7 +708,7 @@ void VToolDetail::UpdateLabel()
|
||||||
*/
|
*/
|
||||||
void VToolDetail::UpdatePatternInfo()
|
void VToolDetail::UpdatePatternInfo()
|
||||||
{
|
{
|
||||||
patternInfo->Reset();
|
//patternInfo->Reset();
|
||||||
QFont fnt = qApp->font();
|
QFont fnt = qApp->font();
|
||||||
int iFS = doc->GetFontSize();
|
int iFS = doc->GetFontSize();
|
||||||
if (iFS < MIN_FONT_SIZE)
|
if (iFS < MIN_FONT_SIZE)
|
||||||
|
@ -748,6 +753,7 @@ void VToolDetail::UpdatePatternInfo()
|
||||||
patternInfo->AddLine(tl);
|
patternInfo->AddLine(tl);
|
||||||
|
|
||||||
patternInfo->setPos(doc->GetLabelPosition());
|
patternInfo->setPos(doc->GetLabelPosition());
|
||||||
|
patternInfo->setRotation(doc->GetRotation());
|
||||||
patternInfo->Update();
|
patternInfo->Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -761,6 +767,11 @@ void VToolDetail::SaveMoveDetail(QPointF ptPos)
|
||||||
VDetail oldDet = VAbstractTool::data.GetDetail(id);
|
VDetail oldDet = VAbstractTool::data.GetDetail(id);
|
||||||
VDetail newDet = oldDet;
|
VDetail newDet = oldDet;
|
||||||
newDet.GetPatternPieceData().SetPos(ptPos);
|
newDet.GetPatternPieceData().SetPos(ptPos);
|
||||||
|
newDet.GetPatternPieceData().SetLabelWidth(dataLabel->boundingRect().width());
|
||||||
|
newDet.GetPatternPieceData().SetLabelHeight(dataLabel->boundingRect().height());
|
||||||
|
newDet.GetPatternPieceData().SetFontSize(dataLabel->GetFontSize());
|
||||||
|
newDet.GetPatternPieceData().SetRotation(dataLabel->rotation());
|
||||||
|
|
||||||
SaveDetailOptions* moveCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene());
|
SaveDetailOptions* moveCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene());
|
||||||
moveCommand->setText(tr("move pattern piece label"));
|
moveCommand->setText(tr("move pattern piece label"));
|
||||||
connect(moveCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree);
|
connect(moveCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree);
|
||||||
|
@ -778,12 +789,35 @@ void VToolDetail::SaveResizeDetail(qreal dLabelW, int iFontSize)
|
||||||
newDet.GetPatternPieceData().SetLabelWidth(dLabelW);
|
newDet.GetPatternPieceData().SetLabelWidth(dLabelW);
|
||||||
newDet.GetPatternPieceData().SetLabelHeight(dataLabel->boundingRect().height());
|
newDet.GetPatternPieceData().SetLabelHeight(dataLabel->boundingRect().height());
|
||||||
newDet.GetPatternPieceData().SetFontSize(iFontSize);
|
newDet.GetPatternPieceData().SetFontSize(iFontSize);
|
||||||
|
newDet.GetPatternPieceData().SetRotation(dataLabel->rotation());
|
||||||
SaveDetailOptions* resizeCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene());
|
SaveDetailOptions* resizeCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene());
|
||||||
resizeCommand->setText(tr("resize pattern piece label"));
|
resizeCommand->setText(tr("resize pattern piece label"));
|
||||||
connect(resizeCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree);
|
connect(resizeCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree);
|
||||||
qApp->getUndoStack()->push(resizeCommand);
|
qApp->getUndoStack()->push(resizeCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief SaveRotationDetail saves the rotation detail label operation to the undo stack
|
||||||
|
*/
|
||||||
|
void VToolDetail::SaveRotationDetail(qreal dRot)
|
||||||
|
{
|
||||||
|
qDebug() << "SAVEROTATION" << dRot;
|
||||||
|
VDetail oldDet = VAbstractTool::data.GetDetail(id);
|
||||||
|
VDetail newDet = oldDet;
|
||||||
|
newDet.GetPatternPieceData().SetPos(dataLabel->pos());
|
||||||
|
newDet.GetPatternPieceData().SetLabelWidth(dataLabel->boundingRect().width());
|
||||||
|
newDet.GetPatternPieceData().SetLabelHeight(dataLabel->boundingRect().height());
|
||||||
|
newDet.GetPatternPieceData().SetFontSize(dataLabel->GetFontSize());
|
||||||
|
newDet.GetPatternPieceData().SetRotation(dRot);
|
||||||
|
|
||||||
|
SaveDetailOptions* rotateCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene());
|
||||||
|
rotateCommand->setText(tr("rotate pattern piece label"));
|
||||||
|
connect(rotateCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree);
|
||||||
|
qApp->getUndoStack()->push(rotateCommand);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SaveMovePattern saves the pattern label position
|
* @brief SaveMovePattern saves the pattern label position
|
||||||
|
@ -804,6 +838,13 @@ void VToolDetail::SaveResizePattern(qreal dLabelW, int iFontSize)
|
||||||
doc->SetFontSize(iFontSize);
|
doc->SetFontSize(iFontSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VToolDetail::SaveRotationPattern(qreal dRot)
|
||||||
|
{
|
||||||
|
doc->SetRotation(dRot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief AddNode add node to the file.
|
* @brief AddNode add node to the file.
|
||||||
|
@ -953,10 +994,17 @@ void VToolDetail::AllowSelecting(bool enabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VToolDetail::ResetChildren()
|
void VToolDetail::ResetChildren(QGraphicsItem *pItem)
|
||||||
{
|
{
|
||||||
dataLabel->Reset();
|
VTextGraphicsItem* pVGI = dynamic_cast<VTextGraphicsItem*>(pItem);
|
||||||
patternInfo->Reset();
|
if (pVGI != dataLabel)
|
||||||
|
{
|
||||||
|
dataLabel->Reset();
|
||||||
|
}
|
||||||
|
if (pVGI != patternInfo)
|
||||||
|
{
|
||||||
|
patternInfo->Reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -73,6 +73,7 @@ public:
|
||||||
static const QString AttrNodeType;
|
static const QString AttrNodeType;
|
||||||
static const QString AttrReverse;
|
static const QString AttrReverse;
|
||||||
static const QString AttrFont;
|
static const QString AttrFont;
|
||||||
|
static const QString AttrRotation;
|
||||||
static const QString NodeTypeContour;
|
static const QString NodeTypeContour;
|
||||||
static const QString NodeTypeModeling;
|
static const QString NodeTypeModeling;
|
||||||
static const QString NodeArc;
|
static const QString NodeArc;
|
||||||
|
@ -92,7 +93,7 @@ public slots:
|
||||||
void EnableToolMove(bool move);
|
void EnableToolMove(bool move);
|
||||||
virtual void AllowHover(bool enabled) Q_DECL_OVERRIDE;
|
virtual void AllowHover(bool enabled) Q_DECL_OVERRIDE;
|
||||||
virtual void AllowSelecting(bool enabled) Q_DECL_OVERRIDE;
|
virtual void AllowSelecting(bool enabled) Q_DECL_OVERRIDE;
|
||||||
virtual void ResetChildren();
|
virtual void ResetChildren(QGraphicsItem* pItem);
|
||||||
virtual void UpdateAll();
|
virtual void UpdateAll();
|
||||||
protected:
|
protected:
|
||||||
virtual void AddToFile () Q_DECL_OVERRIDE;
|
virtual void AddToFile () Q_DECL_OVERRIDE;
|
||||||
|
@ -112,8 +113,10 @@ protected slots:
|
||||||
virtual void UpdatePatternInfo();
|
virtual void UpdatePatternInfo();
|
||||||
virtual void SaveMoveDetail(QPointF ptPos);
|
virtual void SaveMoveDetail(QPointF ptPos);
|
||||||
virtual void SaveResizeDetail(qreal dLabelW, int iFontSize);
|
virtual void SaveResizeDetail(qreal dLabelW, int iFontSize);
|
||||||
|
virtual void SaveRotationDetail(qreal dRot);
|
||||||
virtual void SaveMovePattern(QPointF ptPos);
|
virtual void SaveMovePattern(QPointF ptPos);
|
||||||
virtual void SaveResizePattern(qreal dLabelW, int iFontSize);
|
virtual void SaveResizePattern(qreal dLabelW, int iFontSize);
|
||||||
|
virtual void SaveRotationPattern(qreal dRot);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VToolDetail)
|
Q_DISABLE_COPY(VToolDetail)
|
||||||
|
|
|
@ -142,6 +142,8 @@ void SaveDetailOptions::SavePatternPieceData(QDomElement &domElement, const VDet
|
||||||
doc->SetAttribute(domData, VToolDetail::AttrWidth, data.GetLabelWidth());
|
doc->SetAttribute(domData, VToolDetail::AttrWidth, data.GetLabelWidth());
|
||||||
doc->SetAttribute(domData, VToolDetail::AttrHeight, data.GetLabelHeight());
|
doc->SetAttribute(domData, VToolDetail::AttrHeight, data.GetLabelHeight());
|
||||||
doc->SetAttribute(domData, VToolDetail::AttrFont, data.GetFontSize());
|
doc->SetAttribute(domData, VToolDetail::AttrFont, data.GetFontSize());
|
||||||
|
doc->SetAttribute(domData, VToolDetail::AttrRotation, data.GetRotation());
|
||||||
|
|
||||||
for (int i = 0; i < data.GetMCPCount(); ++i)
|
for (int i = 0; i < data.GetMCPCount(); ++i)
|
||||||
{
|
{
|
||||||
MaterialCutPlacement mcp = data.GetMCP(i);
|
MaterialCutPlacement mcp = data.GetMCP(i);
|
||||||
|
|
|
@ -80,6 +80,10 @@ void VMainGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
QGraphicsScene::mousePressEvent(event);
|
QGraphicsScene::mousePressEvent(event);
|
||||||
|
|
||||||
|
QTransform t;
|
||||||
|
QGraphicsItem* pItem = itemAt(event->scenePos(), t);
|
||||||
|
emit ItemClicked(pItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -93,6 +93,7 @@ signals:
|
||||||
|
|
||||||
void MouseLeftPressed();
|
void MouseLeftPressed();
|
||||||
void MouseLeftReleased();
|
void MouseLeftReleased();
|
||||||
|
void ItemClicked(QGraphicsItem* pItem);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ChoosedObject send option choosed object.
|
* @brief ChoosedObject send option choosed object.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user