From aa0b73d9303662e06c0254b6b79aeb090c8e0313 Mon Sep 17 00:00:00 2001 From: dismine Date: Sat, 8 Nov 2014 17:49:59 +0200 Subject: [PATCH] Don't waite dialog stage, block bad data on early stage. --HG-- branch : develop --- .../dialogs/tools/dialoglineintersectaxis.cpp | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/app/dialogs/tools/dialoglineintersectaxis.cpp b/src/app/dialogs/tools/dialoglineintersectaxis.cpp index b30ee2cb4..30ac4d701 100644 --- a/src/app/dialogs/tools/dialoglineintersectaxis.cpp +++ b/src/app/dialogs/tools/dialoglineintersectaxis.cpp @@ -218,21 +218,34 @@ void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type) } break; case (1): - if (SetObject(id, ui->comboBoxSecondLinePoint, tr("Select axis point"))) + if (getCurrentObjectId(ui->comboBoxFirstLinePoint) != id) { - number++; - line->setPoint2Id(id); - line->RefreshGeometry(); + if (SetObject(id, ui->comboBoxSecondLinePoint, tr("Select axis point"))) + { + number++; + line->setPoint2Id(id); + line->RefreshGeometry(); + } } break; case (2): - if (SetObject(id, ui->comboBoxAxisPoint, "")) + { + QSet set; + set.insert(getCurrentObjectId(ui->comboBoxFirstLinePoint)); + set.insert(getCurrentObjectId(ui->comboBoxSecondLinePoint)); + set.insert(id); + + if (set.size() == 3) { - basePointId = id; - line->setAxisPointId(id); - line->RefreshGeometry(); - prepare = true; + if (SetObject(id, ui->comboBoxAxisPoint, "")) + { + basePointId = id; + line->setAxisPointId(id); + line->RefreshGeometry(); + prepare = true; + } } + } break; default: break;