Resolved issue #270. Selection point by clicking on label in tools seam allowance and union.
--HG-- branch : feature
This commit is contained in:
parent
e39d42146c
commit
550816a958
|
@ -289,6 +289,7 @@ void MainWindow::InitScenes()
|
||||||
connect(this, &MainWindow::EnableItemMove, sceneDraw, &VMainGraphicsScene::EnableItemMove);
|
connect(this, &MainWindow::EnableItemMove, sceneDraw, &VMainGraphicsScene::EnableItemMove);
|
||||||
connect(sceneDraw, &VMainGraphicsScene::mouseMove, this, &MainWindow::mouseMove);
|
connect(sceneDraw, &VMainGraphicsScene::mouseMove, this, &MainWindow::mouseMove);
|
||||||
sceneDetails = new VMainGraphicsScene();
|
sceneDetails = new VMainGraphicsScene();
|
||||||
|
connect(this, &MainWindow::EnableItemMove, sceneDetails, &VMainGraphicsScene::EnableItemMove);
|
||||||
connect(sceneDetails, &VMainGraphicsScene::mouseMove, this, &MainWindow::mouseMove);
|
connect(sceneDetails, &VMainGraphicsScene::mouseMove, this, &MainWindow::mouseMove);
|
||||||
|
|
||||||
ui->view->setScene(currentScene);
|
ui->view->setScene(currentScene);
|
||||||
|
|
|
@ -1263,7 +1263,7 @@ void VPattern::ParseNodePoint(const QDomElement &domElement, const Document &par
|
||||||
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(idObject );
|
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(idObject );
|
||||||
data->UpdateGObject(id, new VPointF(point->toQPointF(), point->name(), mx, my, idObject,
|
data->UpdateGObject(id, new VPointF(point->toQPointF(), point->name(), mx, my, idObject,
|
||||||
Draw::Modeling));
|
Draw::Modeling));
|
||||||
VNodePoint::Create(this, data, id, idObject, parse, Source::FromFile, idTool);
|
VNodePoint::Create(this, data, sceneDetail, id, idObject, parse, Source::FromFile, idTool);
|
||||||
}
|
}
|
||||||
catch (const VExceptionBadId &e)
|
catch (const VExceptionBadId &e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -55,6 +55,7 @@ VNodePoint::VNodePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quin
|
||||||
{
|
{
|
||||||
radius = ToPixel(DefPointRadius/*mm*/, Unit::Mm);
|
radius = ToPixel(DefPointRadius/*mm*/, Unit::Mm);
|
||||||
namePoint = new VGraphicsSimpleTextItem(this);
|
namePoint = new VGraphicsSimpleTextItem(this);
|
||||||
|
connect(namePoint, &VGraphicsSimpleTextItem::PointChoosed, this, &VNodePoint::PointChoosed);
|
||||||
lineName = new QGraphicsLineItem(this);
|
lineName = new QGraphicsLineItem(this);
|
||||||
connect(namePoint, &VGraphicsSimpleTextItem::NameChangePosition, this,
|
connect(namePoint, &VGraphicsSimpleTextItem::NameChangePosition, this,
|
||||||
&VNodePoint::NameChangePosition);
|
&VNodePoint::NameChangePosition);
|
||||||
|
@ -78,7 +79,8 @@ VNodePoint::VNodePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quin
|
||||||
* @param idTool tool id.
|
* @param idTool tool id.
|
||||||
* @param parent QObject parent
|
* @param parent QObject parent
|
||||||
*/
|
*/
|
||||||
void VNodePoint::Create(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 idPoint, const Document &parse,
|
void VNodePoint::Create(VAbstractPattern *doc, VContainer *data, VMainGraphicsScene *scene,
|
||||||
|
quint32 id, quint32 idPoint, const Document &parse,
|
||||||
const Source &typeCreation, const quint32 &idTool, QObject *parent)
|
const Source &typeCreation, const quint32 &idTool, QObject *parent)
|
||||||
{
|
{
|
||||||
VAbstractTool::AddRecord(id, Tool::NodePoint, doc);
|
VAbstractTool::AddRecord(id, Tool::NodePoint, doc);
|
||||||
|
@ -87,6 +89,7 @@ void VNodePoint::Create(VAbstractPattern *doc, VContainer *data, quint32 id, qui
|
||||||
//TODO Need create garbage collector and remove all nodes, what we don't use.
|
//TODO Need create garbage collector and remove all nodes, what we don't use.
|
||||||
//Better check garbage before each saving file. Check only modeling tags.
|
//Better check garbage before each saving file. Check only modeling tags.
|
||||||
VNodePoint *point = new VNodePoint(doc, data, id, idPoint, typeCreation, idTool, parent);
|
VNodePoint *point = new VNodePoint(doc, data, id, idPoint, typeCreation, idTool, parent);
|
||||||
|
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VNodePoint::EnableToolMove);
|
||||||
doc->AddTool(id, point);
|
doc->AddTool(id, point);
|
||||||
if (idTool != 0)
|
if (idTool != 0)
|
||||||
{
|
{
|
||||||
|
@ -133,6 +136,12 @@ QString VNodePoint::getTagName() const
|
||||||
return VNodePoint::TagName;
|
return VNodePoint::TagName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VNodePoint::PointChoosed()
|
||||||
|
{
|
||||||
|
emit ChoosedTool(id, SceneObject::Point);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief FullUpdateFromFile update tool data form file.
|
* @brief FullUpdateFromFile update tool data form file.
|
||||||
|
@ -281,3 +290,10 @@ void VNodePoint::RefreshLine()
|
||||||
{
|
{
|
||||||
VAbstractTool::RefreshLine(this, namePoint, lineName, radius);
|
VAbstractTool::RefreshLine(this, namePoint, lineName, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VNodePoint::EnableToolMove(bool move)
|
||||||
|
{
|
||||||
|
this->setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
|
namePoint->setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
|
}
|
||||||
|
|
|
@ -48,7 +48,8 @@ public:
|
||||||
VNodePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 idPoint, const Source &typeCreation,
|
VNodePoint(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 idPoint, const Source &typeCreation,
|
||||||
const quint32 &idTool = 0, QObject *qoParent = nullptr, QGraphicsItem * parent = nullptr );
|
const quint32 &idTool = 0, QObject *qoParent = nullptr, QGraphicsItem * parent = nullptr );
|
||||||
|
|
||||||
static void Create(VAbstractPattern *doc, VContainer *data, quint32 id, quint32 idPoint, const Document &parse,
|
static void Create(VAbstractPattern *doc, VContainer *data, VMainGraphicsScene *scene,
|
||||||
|
quint32 id, quint32 idPoint, const Document &parse,
|
||||||
const Source &typeCreation, const quint32 &idTool = 0, QObject *parent = nullptr);
|
const Source &typeCreation, const quint32 &idTool = 0, QObject *parent = nullptr);
|
||||||
static const QString TagName;
|
static const QString TagName;
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
|
@ -60,6 +61,8 @@ public:
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile() Q_DECL_OVERRIDE;
|
virtual void FullUpdateFromFile() Q_DECL_OVERRIDE;
|
||||||
void NameChangePosition(const QPointF &pos);
|
void NameChangePosition(const QPointF &pos);
|
||||||
|
void PointChoosed();
|
||||||
|
void EnableToolMove(bool move);
|
||||||
protected:
|
protected:
|
||||||
/** @brief radius radius circle. */
|
/** @brief radius radius circle. */
|
||||||
qreal radius;
|
qreal radius;
|
||||||
|
|
|
@ -160,7 +160,7 @@ void VToolDetail::Create(DialogTool *dialog, VMainGraphicsScene *scene, VAbstrac
|
||||||
case (Tool::NodePoint):
|
case (Tool::NodePoint):
|
||||||
{
|
{
|
||||||
id = CreateNode<VPointF>(data, nodeD.getId());
|
id = CreateNode<VPointF>(data, nodeD.getId());
|
||||||
VNodePoint::Create(doc, data, id, nodeD.getId(), Document::FullParse, Source::FromGui);
|
VNodePoint::Create(doc, data, scene, id, nodeD.getId(), Document::FullParse, Source::FromGui);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (Tool::NodeArc):
|
case (Tool::NodeArc):
|
||||||
|
|
|
@ -82,7 +82,7 @@ VToolUnionDetails::VToolUnionDetails(VAbstractPattern *doc, VContainer *data, co
|
||||||
* @param pRotate point rotation.
|
* @param pRotate point rotation.
|
||||||
* @param angle angle rotation.
|
* @param angle angle rotation.
|
||||||
*/
|
*/
|
||||||
void VToolUnionDetails::AddToNewDetail(QObject *tool, VAbstractPattern *doc, VContainer *data, VDetail &newDetail,
|
void VToolUnionDetails::AddToNewDetail(QObject *tool, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data, VDetail &newDetail,
|
||||||
const VDetail &det, const int &i, const quint32 &idTool, const qreal &dx,
|
const VDetail &det, const int &i, const quint32 &idTool, const qreal &dx,
|
||||||
const qreal &dy, const quint32 &pRotate, const qreal &angle)
|
const qreal &dy, const quint32 &pRotate, const qreal &angle)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +105,7 @@ void VToolUnionDetails::AddToNewDetail(QObject *tool, VAbstractPattern *doc, VCo
|
||||||
VPointF *point1 = new VPointF(*point);
|
VPointF *point1 = new VPointF(*point);
|
||||||
point1->setMode(Draw::Modeling);
|
point1->setMode(Draw::Modeling);
|
||||||
id = data->AddGObject(point1);
|
id = data->AddGObject(point1);
|
||||||
VNodePoint::Create(doc, data, id, idObject, Document::FullParse, Source::FromGui, idTool, tool);
|
VNodePoint::Create(doc, data, scene, id, idObject, Document::FullParse, Source::FromGui, idTool, tool);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -546,7 +546,7 @@ VToolUnionDetails* VToolUnionDetails::Create(const quint32 _id, const VDetail &d
|
||||||
VDetail newDetail;
|
VDetail newDetail;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
AddToNewDetail(unionDetails, doc, data, newDetail, d1.RemoveEdge(indexD1), i, id);
|
AddToNewDetail(unionDetails, scene, doc, data, newDetail, d1.RemoveEdge(indexD1), i, id);
|
||||||
++i;
|
++i;
|
||||||
if (i > d1.indexOfNode(det1p1.getId()) && pointsD2 < countNodeD2-2)
|
if (i > d1.indexOfNode(det1p1.getId()) && pointsD2 < countNodeD2-2)
|
||||||
{
|
{
|
||||||
|
@ -558,7 +558,7 @@ VToolUnionDetails* VToolUnionDetails::Create(const quint32 _id, const VDetail &d
|
||||||
{
|
{
|
||||||
j=0;
|
j=0;
|
||||||
}
|
}
|
||||||
AddToNewDetail(unionDetails, doc, data, newDetail, d2.RemoveEdge(indexD2), j, id, dx, dy,
|
AddToNewDetail(unionDetails, scene, doc, data, newDetail, d2.RemoveEdge(indexD2), j, id, dx, dy,
|
||||||
det1p1.getId(), angle);
|
det1p1.getId(), angle);
|
||||||
++pointsD2;
|
++pointsD2;
|
||||||
++j;
|
++j;
|
||||||
|
|
|
@ -69,7 +69,7 @@ public:
|
||||||
static const QString AttrNodeType;
|
static const QString AttrNodeType;
|
||||||
static const QString NodeTypeContour;
|
static const QString NodeTypeContour;
|
||||||
static const QString NodeTypeModeling;
|
static const QString NodeTypeModeling;
|
||||||
static void AddToNewDetail(QObject *tool, VAbstractPattern *doc, VContainer *data, VDetail &newDetail,
|
static void AddToNewDetail(QObject *tool, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data, VDetail &newDetail,
|
||||||
const VDetail &det, const int &i, const quint32 &idTool, const qreal &dx = 0,
|
const VDetail &det, const int &i, const quint32 &idTool, const qreal &dx = 0,
|
||||||
const qreal &dy = 0, const quint32 &pRotate = 0, const qreal &angle = 0);
|
const qreal &dy = 0, const quint32 &pRotate = 0, const qreal &angle = 0);
|
||||||
static void UpdatePoints(const quint32 &idDetail, VContainer *data, const VDetail &det, const int &i,
|
static void UpdatePoints(const quint32 &idDetail, VContainer *data, const VDetail &det, const int &i,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user