diff --git a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp index 0c3dd993b..fa515be5e 100644 --- a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp @@ -188,15 +188,14 @@ void DialogCurveIntersectAxis::ShowDialog(bool click) return; } } - this->setModal(true); VisToolCurveIntersectAxis *line = qobject_cast(vis); SCASSERT(line != nullptr); this->SetAngle(line->Angle());//Show in dialog angle what user choose emit ToolTip(""); - timerFormula->start(); - this->show(); + + DialogAccepted();// Just set default values and don't show dialog } } diff --git a/src/libs/vtools/dialogs/tools/dialogheight.cpp b/src/libs/vtools/dialogs/tools/dialogheight.cpp index 45cc54d45..0273ae424 100644 --- a/src/libs/vtools/dialogs/tools/dialogheight.cpp +++ b/src/libs/vtools/dialogs/tools/dialogheight.cpp @@ -201,8 +201,7 @@ void DialogHeight::ChosenObject(quint32 id, const SceneObject &type) line->setLineP2Id(id); line->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } } diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersect.cpp b/src/libs/vtools/dialogs/tools/dialoglineintersect.cpp index 9314bb5a6..23537d3c0 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersect.cpp +++ b/src/libs/vtools/dialogs/tools/dialoglineintersect.cpp @@ -136,20 +136,27 @@ void DialogLineIntersect::ChosenObject(quint32 id, const SceneObject &type) prepare = true; flagPoint = CheckIntersecion(); CheckState(); - this->setModal(true); - this->show(); - connect(ui->comboBoxP1Line1, - static_cast(&QComboBox::currentIndexChanged), this, - &DialogLineIntersect::PointChanged); - connect(ui->comboBoxP2Line1, - static_cast(&QComboBox::currentIndexChanged), this, - &DialogLineIntersect::PointChanged); - connect(ui->comboBoxP1Line2, - static_cast(&QComboBox::currentIndexChanged), this, - &DialogLineIntersect::PointChanged); - connect(ui->comboBoxP2Line2, - static_cast(&QComboBox::currentIndexChanged), this, - &DialogLineIntersect::PointChanged); + if (flagPoint) + { + DialogAccepted(); + } + else + { + this->setModal(true); + this->show(); + connect(ui->comboBoxP1Line1, + static_cast(&QComboBox::currentIndexChanged), this, + &DialogLineIntersect::PointChanged); + connect(ui->comboBoxP2Line1, + static_cast(&QComboBox::currentIndexChanged), this, + &DialogLineIntersect::PointChanged); + connect(ui->comboBoxP1Line2, + static_cast(&QComboBox::currentIndexChanged), this, + &DialogLineIntersect::PointChanged); + connect(ui->comboBoxP2Line2, + static_cast(&QComboBox::currentIndexChanged), this, + &DialogLineIntersect::PointChanged); + } } } } diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp index 4eb56eb35..f0b716f9f 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp @@ -212,15 +212,14 @@ void DialogLineIntersectAxis::ShowDialog(bool click) return; } } - this->setModal(true); VisToolLineIntersectAxis *line = qobject_cast(vis); SCASSERT(line != nullptr); this->SetAngle(line->Angle());//Show in dialog angle what user choose emit ToolTip(""); - timerFormula->start(); - this->show(); + + DialogAccepted();// Just set default values and don't show dialog } } diff --git a/src/libs/vtools/dialogs/tools/dialogpointfromarcandtangent.cpp b/src/libs/vtools/dialogs/tools/dialogpointfromarcandtangent.cpp index 192b508c0..d26d09e45 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointfromarcandtangent.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointfromarcandtangent.cpp @@ -155,8 +155,7 @@ void DialogPointFromArcAndTangent::ChosenObject(quint32 id, const SceneObject &t point->setArcId(id); point->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } break; diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersection.cpp b/src/libs/vtools/dialogs/tools/dialogpointofintersection.cpp index cd1dbfabf..b26901904 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersection.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersection.cpp @@ -60,7 +60,7 @@ DialogPointOfIntersection::DialogPointOfIntersection(const VContainer *data, con this, &DialogPointOfIntersection::PointNameChanged); vis = new VisToolPointOfIntersection(data); - vis->VisualMode(NULL_ID); + vis->VisualMode(NULL_ID);//Show vertical axis FixateSize(); } @@ -119,8 +119,7 @@ void DialogPointOfIntersection::ChosenObject(quint32 id, const SceneObject &type line->setPoint2Id(id); line->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } break; diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectionarcs.cpp b/src/libs/vtools/dialogs/tools/dialogpointofintersectionarcs.cpp index c7ac5b827..b5f0239ee 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectionarcs.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectionarcs.cpp @@ -155,8 +155,7 @@ void DialogPointOfIntersectionArcs::ChosenObject(quint32 id, const SceneObject & point->setArc2Id(id); point->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } break; diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp index 0a513f143..49920dc9d 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp @@ -241,8 +241,7 @@ void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObjec point->setPoint2Id(id); point->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } break; diff --git a/src/libs/vtools/dialogs/tools/dialogtool.h b/src/libs/vtools/dialogs/tools/dialogtool.h index e70f1b385..25a4b665d 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.h +++ b/src/libs/vtools/dialogs/tools/dialogtool.h @@ -340,8 +340,12 @@ inline void DialogTool::AddVisualization() T *toolVis = qobject_cast(vis); SCASSERT(toolVis != nullptr); - connect(scene, &VMainGraphicsScene::NewFactor, toolVis, &Visualization::SetFactor); - scene->addItem(toolVis); + if (not scene->items().contains(toolVis)) + { + connect(scene, &VMainGraphicsScene::NewFactor, toolVis, &Visualization::SetFactor); + scene->addItem(toolVis); + } + toolVis->RefreshGeometry(); } } diff --git a/src/libs/vtools/dialogs/tools/dialogtriangle.cpp b/src/libs/vtools/dialogs/tools/dialogtriangle.cpp index 52e0a8e2b..26dad5c42 100644 --- a/src/libs/vtools/dialogs/tools/dialogtriangle.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtriangle.cpp @@ -144,8 +144,7 @@ void DialogTriangle::ChosenObject(quint32 id, const SceneObject &type) line->setHypotenuseP2Id(id); line->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } } diff --git a/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp b/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp index bb522f7b4..01aa42b7c 100644 --- a/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtruedarts.cpp @@ -284,8 +284,7 @@ void DialogTrueDarts::ChosenObject(quint32 id, const SceneObject &type) points->setD3PointId(id); points->RefreshGeometry(); prepare = true; - this->setModal(true); - this->show(); + DialogAccepted(); } } break; diff --git a/src/libs/vtools/visualization/vistoolpointofintersection.cpp b/src/libs/vtools/visualization/vistoolpointofintersection.cpp index 399ae674b..be3a9b426 100644 --- a/src/libs/vtools/visualization/vistoolpointofintersection.cpp +++ b/src/libs/vtools/visualization/vistoolpointofintersection.cpp @@ -66,13 +66,14 @@ void VisToolPointOfIntersection::RefreshGeometry() if (point2Id <= NULL_ID) { axisL2 = Axis(Visualization::scenePos, 180); + ShowIntersection(axisL1, axisL2, supportColor); } else { const QSharedPointer second = Visualization::data->GeometricObject(point2Id); DrawPoint(axisP2, second->toQPointF(), supportColor); axisL2 = Axis(second->toQPointF(), 180); - ShowIntersection(axisL1, axisL2); + ShowIntersection(axisL1, axisL2, mainColor); } DrawLine(axis2, axisL2, supportColor, Qt::DashLine); } @@ -85,14 +86,14 @@ void VisToolPointOfIntersection::setPoint2Id(const quint32 &value) } //--------------------------------------------------------------------------------------------------------------------- -void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLineF &axis2) +void VisToolPointOfIntersection::ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color) { QPointF p; QLineF::IntersectType intersect = axis1.intersect(axis2, &p); if (intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection) { point->setVisible(true); - DrawPoint(point, p, mainColor); + DrawPoint(point, p, color); } else { diff --git a/src/libs/vtools/visualization/vistoolpointofintersection.h b/src/libs/vtools/visualization/vistoolpointofintersection.h index 27eed23f2..6d3f43fd2 100644 --- a/src/libs/vtools/visualization/vistoolpointofintersection.h +++ b/src/libs/vtools/visualization/vistoolpointofintersection.h @@ -51,7 +51,7 @@ private: QGraphicsEllipseItem *axisP2; QGraphicsLineItem *axis2;//axis1 is class themself - void ShowIntersection(const QLineF &axis1, const QLineF &axis2); + void ShowIntersection(const QLineF &axis1, const QLineF &axis2, const QColor &color); }; #endif // VISTOOLPOINTOFINTERSECTION_H