From 6effc2b5cddd9231e14f179f19f055095a4e27b4 Mon Sep 17 00:00:00 2001 From: BojanKverh Date: Fri, 1 Jul 2016 01:45:16 +0200 Subject: [PATCH] Rotation bugs fixed --HG-- branch : feature --- src/app/valentina/xml/vpattern.cpp | 5 +- src/libs/ifc/schema/pattern/v0.3.3.xsd | 2 + src/libs/ifc/xml/vabstractpattern.cpp | 32 +++++++++- src/libs/ifc/xml/vabstractpattern.h | 3 + src/libs/vpatterndb/vpatternpiecedata.cpp | 13 ++++ src/libs/vpatterndb/vpatternpiecedata.h | 5 ++ src/libs/vtools/tools/vtextgraphicsitem.cpp | 30 +++++++-- src/libs/vtools/tools/vtextgraphicsitem.h | 1 + src/libs/vtools/tools/vtooldetail.cpp | 62 ++++++++++++++++--- src/libs/vtools/tools/vtooldetail.h | 5 +- .../vtools/undocommands/savedetailoptions.cpp | 2 + src/libs/vwidgets/vmaingraphicsscene.cpp | 4 ++ src/libs/vwidgets/vmaingraphicsscene.h | 1 + 13 files changed, 147 insertions(+), 18 deletions(-) diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index 07c23bedc..777a956d4 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -678,11 +678,10 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document detail.GetPatternPieceData().SetLabelWidth(dLW); qreal dLH = element.attribute(VToolDetail::AttrHeight, "0").toDouble(); detail.GetPatternPieceData().SetLabelHeight(dLH); - qDebug() << "HEIGHT" << - detail.GetPatternPieceData().GetPos() << - detail.GetPatternPieceData().GetLabelHeight(); int iFS = element.attribute(VToolDetail::AttrFont, "0").toInt(); detail.GetPatternPieceData().SetFontSize(iFS); + qreal dRot = element.attribute(VToolDetail::AttrRotation, "0").toDouble(); + detail.GetPatternPieceData().SetRotation(dRot); QDomNodeList nodeListMCP = element.childNodes(); for (int iMCP = 0; iMCP < nodeListMCP.count(); ++iMCP) diff --git a/src/libs/ifc/schema/pattern/v0.3.3.xsd b/src/libs/ifc/schema/pattern/v0.3.3.xsd index f7c78c74f..ae4d72f3d 100644 --- a/src/libs/ifc/schema/pattern/v0.3.3.xsd +++ b/src/libs/ifc/schema/pattern/v0.3.3.xsd @@ -26,6 +26,7 @@ + @@ -360,6 +361,7 @@ + diff --git a/src/libs/ifc/xml/vabstractpattern.cpp b/src/libs/ifc/xml/vabstractpattern.cpp index ca24447e5..4e92b299d 100644 --- a/src/libs/ifc/xml/vabstractpattern.cpp +++ b/src/libs/ifc/xml/vabstractpattern.cpp @@ -68,8 +68,9 @@ const QString VAbstractPattern::TagCustomerName = QStringLiteral("customer"); const QString VAbstractPattern::TagCompanyName = QStringLiteral("company"); const QString VAbstractPattern::TagCreationDate = QStringLiteral("created"); 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::TagLabelRot = QStringLiteral("rotation"); const QString VAbstractPattern::AttrName = QStringLiteral("name"); const QString VAbstractPattern::AttrVisible = QStringLiteral("visible"); @@ -1157,6 +1158,27 @@ void VAbstractPattern::SetFontSize(int iFS) 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 { @@ -1283,7 +1305,7 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag) const QStringList tags = QStringList() << TagUnit << TagImage << TagAuthor << TagDescription << TagNotes << TagGradation << TagPatternName << TagPatternNum << TagCompanyName << TagCustomerName << TagCreationDate << TagLabelPos << TagLabelSize - << TagLabelFont; + << TagLabelFont << TagLabelRot; switch (tags.indexOf(tag)) { case 0: //TagUnit @@ -1365,6 +1387,12 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag) break; } + case 14: + { + element = createElement(TagLabelRot); + break; + } + default: { return QDomElement(); diff --git a/src/libs/ifc/xml/vabstractpattern.h b/src/libs/ifc/xml/vabstractpattern.h index f0dc2dcf0..806a0e166 100644 --- a/src/libs/ifc/xml/vabstractpattern.h +++ b/src/libs/ifc/xml/vabstractpattern.h @@ -123,6 +123,8 @@ public: void SetLabelSize(QSizeF sz); int GetFontSize() const; void SetFontSize(int iFS); + qreal GetRotation() const; + void SetRotation(qreal dRot); QString GetImage() const; QString GetImageExtension() const; @@ -182,6 +184,7 @@ public: static const QString TagLabelPos; static const QString TagLabelSize; static const QString TagLabelFont; + static const QString TagLabelRot; static const QString AttrName; static const QString AttrVisible; diff --git a/src/libs/vpatterndb/vpatternpiecedata.cpp b/src/libs/vpatterndb/vpatternpiecedata.cpp index 7b939a770..80d68bda5 100644 --- a/src/libs/vpatterndb/vpatternpiecedata.cpp +++ b/src/libs/vpatterndb/vpatternpiecedata.cpp @@ -35,6 +35,7 @@ VPatternPieceData::VPatternPieceData() : m_iFontSize = MIN_FONT_SIZE; // 0 means unknown width 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; +} + +//--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vpatterndb/vpatternpiecedata.h b/src/libs/vpatterndb/vpatternpiecedata.h index ab0295d82..11997cc36 100644 --- a/src/libs/vpatterndb/vpatternpiecedata.h +++ b/src/libs/vpatterndb/vpatternpiecedata.h @@ -93,6 +93,8 @@ public: void SetLabelHeight(qreal dLabelH); int GetFontSize() const; void SetFontSize(int iSize); + qreal GetRotation() const; + void SetRotation(qreal dRot); private: /** @brief Pattern piece name @@ -116,6 +118,9 @@ private: /** @brief Label font size */ int m_iFontSize; + /** @brief Label rotation + */ + qreal m_dRotation; }; #endif // VPATTERNPIECEDATA_H diff --git a/src/libs/vtools/tools/vtextgraphicsitem.cpp b/src/libs/vtools/tools/vtextgraphicsitem.cpp index dbf38e1df..9e5e3f31c 100644 --- a/src/libs/vtools/tools/vtextgraphicsitem.cpp +++ b/src/libs/vtools/tools/vtextgraphicsitem.cpp @@ -36,6 +36,8 @@ #define RESIZE_SQUARE 30 #define ROTATE_CIRCLE 20 +#define ROTATE_RECT 60 +#define ROTATE_ARC 50 #define MIN_W 120 #define MIN_H 60 #define MIN_FONT_SIZE 12 @@ -71,6 +73,7 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem { Q_UNUSED(widget); painter->fillRect(option->rect, QColor(251, 251, 175)); + painter->setRenderHints(QPainter::Antialiasing); // draw text lines int iY = 0; @@ -117,6 +120,16 @@ void VTextGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem 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() { - return; + qDebug() << "RESET" << m_eMode << m_liLines.count(); m_eMode = mNormal; m_bReleased = false; Update(); @@ -163,6 +176,7 @@ void VTextGraphicsItem::SetSize(qreal fW, qreal fH) m_rectResize.setTopLeft(QPointF(fW - RESIZE_SQUARE, fH - RESIZE_SQUARE)); m_rectResize.setWidth(RESIZE_SQUARE); m_rectResize.setHeight(RESIZE_SQUARE); + setTransformOriginPoint(m_rectBoundingBox.center()); } //--------------------------------------------------------------------------------------------------------------------- @@ -172,6 +186,12 @@ void VTextGraphicsItem::Update() UpdateBox(); } +//--------------------------------------------------------------------------------------------------------------------- +int VTextGraphicsItem::GetFontSize() const +{ + return m_font.pixelSize(); +} + //--------------------------------------------------------------------------------------------------------------------- QRectF VTextGraphicsItem::boundingRect() const { @@ -183,7 +203,6 @@ void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME) { if (pME->button() == Qt::LeftButton) { - qDebug() << "PRESS" << m_eMode; m_ptStartPos = pos(); m_ptStart = pME->scenePos(); m_szStart = m_rectBoundingBox.size(); @@ -202,7 +221,7 @@ void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME) } setZValue(3); 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; if (m_eMode == mMove) { - //moveBy(ptDiff.x(), ptDiff.y()); setPos(m_ptStartPos + ptDiff); UpdateBox(); } @@ -231,6 +249,7 @@ void VTextGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent* pME) } double dAng = 180*(GetAngle(pME->scenePos()) - m_dAngle)/M_PI; setRotation(m_dRotation + dAng); + emit SignalRotated(rotation()); 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()); bool bShort = (dDist < 2); - qDebug() << "RELEASE" << m_eMode << dDist; + qDebug() << "RELEASE" << m_eMode << dDist << m_liLines.count(); if (m_eMode == mMove || m_eMode == mResize) { // when released in mMove or mResize mode @@ -280,6 +299,7 @@ void VTextGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) } } m_bReleased = true; + qDebug() << "RELEASE finished" << m_eMode << m_liLines.count(); } } diff --git a/src/libs/vtools/tools/vtextgraphicsitem.h b/src/libs/vtools/tools/vtextgraphicsitem.h index a079c55d0..54d3725cb 100644 --- a/src/libs/vtools/tools/vtextgraphicsitem.h +++ b/src/libs/vtools/tools/vtextgraphicsitem.h @@ -63,6 +63,7 @@ public: void Reset(); + int GetFontSize() const; QRectF boundingRect() const; void AddLine(const TextLine& tl); void Clear(); diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index d575367c5..a4150a033 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -57,6 +57,7 @@ const QString VToolDetail::AttrHeight = QStringLiteral("height"); const QString VToolDetail::AttrNodeType = QStringLiteral("nodeType"); const QString VToolDetail::AttrReverse = QStringLiteral("reverse"); const QString VToolDetail::AttrFont = QStringLiteral("fontSize"); +const QString VToolDetail::AttrRotation = QStringLiteral("rotation"); const QString VToolDetail::NodeTypeContour = QStringLiteral("Contour"); 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 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) { AddToFile(); @@ -131,10 +132,12 @@ VToolDetail::VToolDetail(VAbstractPattern *doc, VContainer *data, const quint32 connect(dataLabel, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMoveDetail); connect(dataLabel, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizeDetail); + connect(dataLabel, &VTextGraphicsItem::SignalRotated, this, &VToolDetail::SaveRotationDetail); connect(dataLabel, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll); connect(patternInfo, &VTextGraphicsItem::SignalMoved, this, &VToolDetail::SaveMovePattern); connect(patternInfo, &VTextGraphicsItem::SignalResized, this, &VToolDetail::SaveResizePattern); + connect(patternInfo, &VTextGraphicsItem::SignalRotated, this, &VToolDetail::SaveRotationPattern); connect(patternInfo, &VTextGraphicsItem::SignalShrink, this, &VToolDetail::UpdateAll); connect(doc, &VAbstractPattern::patternChanged, this, &VToolDetail::UpdatePatternInfo); @@ -356,6 +359,7 @@ void VToolDetail::AddToFile() doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth()); doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight()); doc->SetAttribute(domData, AttrFont, data.GetFontSize()); + doc->SetAttribute(domData, AttrRotation, data.GetRotation()); for (int i = 0; i < data.GetMCPCount(); ++i) { @@ -404,6 +408,7 @@ void VToolDetail::RefreshDataInFile() doc->SetAttribute(domData, AttrWidth, data.GetLabelWidth()); doc->SetAttribute(domData, AttrHeight, data.GetLabelHeight()); doc->SetAttribute(domData, AttrFont, data.GetFontSize()); + doc->SetAttribute(domData, AttrRotation, data.GetRotation()); for (int i = 0; i < data.GetMCPCount(); ++i) { @@ -650,11 +655,10 @@ void VToolDetail::UpdateLabel() { const VDetail detail = VAbstractTool::data.GetDetail(id); - qDebug() << "Update label"; const VPatternPieceData& data = detail.GetPatternPieceData(); if (data.GetLetter().isEmpty() == false || data.GetName().isEmpty() == false || data.GetMCPCount() > 0) { - dataLabel->Reset(); + //dataLabel->Reset(); QString qsText = "Cut %1 of %2%3"; QStringList qslPlace; @@ -688,6 +692,7 @@ void VToolDetail::UpdateLabel() } dataLabel->setPos(data.GetPos()); + dataLabel->setRotation(data.GetRotation()); dataLabel->Update(); dataLabel->show(); } @@ -703,7 +708,7 @@ void VToolDetail::UpdateLabel() */ void VToolDetail::UpdatePatternInfo() { - patternInfo->Reset(); + //patternInfo->Reset(); QFont fnt = qApp->font(); int iFS = doc->GetFontSize(); if (iFS < MIN_FONT_SIZE) @@ -748,6 +753,7 @@ void VToolDetail::UpdatePatternInfo() patternInfo->AddLine(tl); patternInfo->setPos(doc->GetLabelPosition()); + patternInfo->setRotation(doc->GetRotation()); patternInfo->Update(); } @@ -761,6 +767,11 @@ void VToolDetail::SaveMoveDetail(QPointF ptPos) VDetail oldDet = VAbstractTool::data.GetDetail(id); VDetail newDet = oldDet; 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()); moveCommand->setText(tr("move pattern piece label")); connect(moveCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); @@ -778,12 +789,35 @@ void VToolDetail::SaveResizeDetail(qreal dLabelW, int iFontSize) newDet.GetPatternPieceData().SetLabelWidth(dLabelW); newDet.GetPatternPieceData().SetLabelHeight(dataLabel->boundingRect().height()); newDet.GetPatternPieceData().SetFontSize(iFontSize); + newDet.GetPatternPieceData().SetRotation(dataLabel->rotation()); SaveDetailOptions* resizeCommand = new SaveDetailOptions(oldDet, newDet, doc, id, this->scene()); resizeCommand->setText(tr("resize pattern piece label")); connect(resizeCommand, &SaveDetailOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); 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 @@ -804,6 +838,13 @@ void VToolDetail::SaveResizePattern(qreal dLabelW, int iFontSize) doc->SetFontSize(iFontSize); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolDetail::SaveRotationPattern(qreal dRot) +{ + doc->SetRotation(dRot); +} + + //--------------------------------------------------------------------------------------------------------------------- /** * @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(); - patternInfo->Reset(); + VTextGraphicsItem* pVGI = dynamic_cast(pItem); + if (pVGI != dataLabel) + { + dataLabel->Reset(); + } + if (pVGI != patternInfo) + { + patternInfo->Reset(); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/vtooldetail.h b/src/libs/vtools/tools/vtooldetail.h index edc0e193e..969805f7f 100644 --- a/src/libs/vtools/tools/vtooldetail.h +++ b/src/libs/vtools/tools/vtooldetail.h @@ -73,6 +73,7 @@ public: static const QString AttrNodeType; static const QString AttrReverse; static const QString AttrFont; + static const QString AttrRotation; static const QString NodeTypeContour; static const QString NodeTypeModeling; static const QString NodeArc; @@ -92,7 +93,7 @@ public slots: void EnableToolMove(bool move); virtual void AllowHover(bool enabled) Q_DECL_OVERRIDE; virtual void AllowSelecting(bool enabled) Q_DECL_OVERRIDE; - virtual void ResetChildren(); + virtual void ResetChildren(QGraphicsItem* pItem); virtual void UpdateAll(); protected: virtual void AddToFile () Q_DECL_OVERRIDE; @@ -112,8 +113,10 @@ protected slots: virtual void UpdatePatternInfo(); virtual void SaveMoveDetail(QPointF ptPos); virtual void SaveResizeDetail(qreal dLabelW, int iFontSize); + virtual void SaveRotationDetail(qreal dRot); virtual void SaveMovePattern(QPointF ptPos); virtual void SaveResizePattern(qreal dLabelW, int iFontSize); + virtual void SaveRotationPattern(qreal dRot); private: Q_DISABLE_COPY(VToolDetail) diff --git a/src/libs/vtools/undocommands/savedetailoptions.cpp b/src/libs/vtools/undocommands/savedetailoptions.cpp index bc30cdca8..1f1e83612 100644 --- a/src/libs/vtools/undocommands/savedetailoptions.cpp +++ b/src/libs/vtools/undocommands/savedetailoptions.cpp @@ -142,6 +142,8 @@ void SaveDetailOptions::SavePatternPieceData(QDomElement &domElement, const VDet doc->SetAttribute(domData, VToolDetail::AttrWidth, data.GetLabelWidth()); doc->SetAttribute(domData, VToolDetail::AttrHeight, data.GetLabelHeight()); doc->SetAttribute(domData, VToolDetail::AttrFont, data.GetFontSize()); + doc->SetAttribute(domData, VToolDetail::AttrRotation, data.GetRotation()); + for (int i = 0; i < data.GetMCPCount(); ++i) { MaterialCutPlacement mcp = data.GetMCP(i); diff --git a/src/libs/vwidgets/vmaingraphicsscene.cpp b/src/libs/vwidgets/vmaingraphicsscene.cpp index 35fe577c8..791903482 100644 --- a/src/libs/vwidgets/vmaingraphicsscene.cpp +++ b/src/libs/vwidgets/vmaingraphicsscene.cpp @@ -80,6 +80,10 @@ void VMainGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *event) } QGraphicsScene::mousePressEvent(event); + + QTransform t; + QGraphicsItem* pItem = itemAt(event->scenePos(), t); + emit ItemClicked(pItem); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vwidgets/vmaingraphicsscene.h b/src/libs/vwidgets/vmaingraphicsscene.h index e65896965..6f86c46a3 100644 --- a/src/libs/vwidgets/vmaingraphicsscene.h +++ b/src/libs/vwidgets/vmaingraphicsscene.h @@ -93,6 +93,7 @@ signals: void MouseLeftPressed(); void MouseLeftReleased(); + void ItemClicked(QGraphicsItem* pItem); /** * @brief ChoosedObject send option choosed object.