We need one method RefreshLine in VAbstractTool instead of two similar methods in VNodePoint and VToolSinglePoint
--HG-- branch : feature
This commit is contained in:
parent
d057d336f7
commit
ece2c42e5f
|
@ -247,32 +247,10 @@ void VToolSinglePoint::RefreshPointGeometry(const VPointF &point)
|
||||||
void VToolSinglePoint::RefreshLine(quint32 id)
|
void VToolSinglePoint::RefreshLine(quint32 id)
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
Q_UNUSED(id)
|
||||||
|
QPen pen(CorrectColor(Qt::black));
|
||||||
|
pen.setWidthF(qApp->toPixel(WidthHairLine(*VAbstractTool::data.GetPatternUnit()))/factor);
|
||||||
|
|
||||||
QRectF nRec = namePoint->sceneBoundingRect();
|
VAbstractTool::RefreshLine(this, namePoint, lineName, radius, pen);
|
||||||
nRec.translate(- scenePos());
|
|
||||||
if (this->rect().intersects(nRec) == false)
|
|
||||||
{
|
|
||||||
const QRectF nameRec = namePoint->sceneBoundingRect();
|
|
||||||
QPointF p1, p2;
|
|
||||||
VGObject::LineIntersectCircle(QPointF(), radius, QLineF(QPointF(), nameRec.center() - scenePos()), p1, p2);
|
|
||||||
const QPointF pRec = VGObject::LineIntersectRect(nameRec, QLineF(scenePos(), nameRec.center()));
|
|
||||||
lineName->setLine(QLineF(p1, pRec - scenePos()));
|
|
||||||
lineName->setPen(QPen(CorrectColor(Qt::black),
|
|
||||||
qApp->toPixel(WidthHairLine(*VAbstractTool::data.GetPatternUnit()))/factor));
|
|
||||||
|
|
||||||
if (QLineF(p1, pRec - scenePos()).length() <= ToPixel(4, Unit::Mm))
|
|
||||||
{
|
|
||||||
lineName->setVisible(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lineName->setVisible(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lineName->setVisible(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -278,26 +278,6 @@ void VNodePoint::RefreshPointGeometry(const VPointF &point)
|
||||||
* @brief RefreshLine refresh label line on scene.
|
* @brief RefreshLine refresh label line on scene.
|
||||||
*/
|
*/
|
||||||
void VNodePoint::RefreshLine()
|
void VNodePoint::RefreshLine()
|
||||||
{ QRectF nRec = namePoint->sceneBoundingRect();
|
{
|
||||||
nRec.translate(- scenePos());
|
VAbstractTool::RefreshLine(this, namePoint, lineName, radius, QPen(Qt::black));
|
||||||
if (this->rect().intersects(nRec) == false)
|
|
||||||
{
|
|
||||||
QRectF nameRec = namePoint->sceneBoundingRect();
|
|
||||||
QPointF p1, p2;
|
|
||||||
VGObject::LineIntersectCircle(QPointF(), radius, QLineF(QPointF(), nameRec.center()- scenePos()), p1, p2);
|
|
||||||
QPointF pRec = VGObject::LineIntersectRect(nameRec, QLineF(scenePos(), nameRec.center()));
|
|
||||||
lineName->setLine(QLineF(p1, pRec - scenePos()));
|
|
||||||
if (QLineF(p1, pRec - scenePos()).length() <= ToPixel(4, Unit::Mm))
|
|
||||||
{
|
|
||||||
lineName->setVisible(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lineName->setVisible(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lineName->setVisible(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -315,3 +315,36 @@ void VAbstractTool::AddRecord(const quint32 id, const Tool &toolType, VAbstractP
|
||||||
history->insert(index+1, record);
|
history->insert(index+1, record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief RefreshLine refresh line to label on scene.
|
||||||
|
*/
|
||||||
|
void VAbstractTool::RefreshLine(QGraphicsEllipseItem *point, VGraphicsSimpleTextItem *namePoint, QGraphicsLineItem *lineName,
|
||||||
|
qreal radius, const QPen pen)
|
||||||
|
{
|
||||||
|
QRectF nRec = namePoint->sceneBoundingRect();
|
||||||
|
nRec.translate(- point->scenePos());
|
||||||
|
if (point->rect().intersects(nRec) == false)
|
||||||
|
{
|
||||||
|
const QRectF nameRec = namePoint->sceneBoundingRect();
|
||||||
|
QPointF p1, p2;
|
||||||
|
VGObject::LineIntersectCircle(QPointF(), radius, QLineF(QPointF(), nameRec.center() - point->scenePos()), p1, p2);
|
||||||
|
const QPointF pRec = VGObject::LineIntersectRect(nameRec, QLineF(point->scenePos(), nameRec.center()));
|
||||||
|
lineName->setLine(QLineF(p1, pRec - point->scenePos()));
|
||||||
|
lineName->setPen(pen);
|
||||||
|
|
||||||
|
if (QLineF(p1, pRec - point->scenePos()).length() <= ToPixel(4, Unit::Mm))
|
||||||
|
{
|
||||||
|
lineName->setVisible(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lineName->setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lineName->setVisible(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include "../vmisc/vabstractapplication.h"
|
#include "../vmisc/vabstractapplication.h"
|
||||||
#include "../vwidgets/vmaingraphicsscene.h"
|
#include "../vwidgets/vmaingraphicsscene.h"
|
||||||
#include "visualization/visualization.h"
|
#include "visualization/visualization.h"
|
||||||
|
#include "../vwidgets/vgraphicssimpletextitem.h"
|
||||||
|
|
||||||
class QDomElement;
|
class QDomElement;
|
||||||
class QLineF;
|
class QLineF;
|
||||||
|
@ -121,6 +122,9 @@ protected:
|
||||||
|
|
||||||
virtual void SetVisualization()=0;
|
virtual void SetVisualization()=0;
|
||||||
void ToolCreation(const Source &typeCreation);
|
void ToolCreation(const Source &typeCreation);
|
||||||
|
|
||||||
|
static void RefreshLine(QGraphicsEllipseItem *point, VGraphicsSimpleTextItem *namePoint, QGraphicsLineItem *lineName,
|
||||||
|
qreal radius, const QPen pen);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VAbstractTool)
|
Q_DISABLE_COPY(VAbstractTool)
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user