diff --git a/src/Mod/TechDraw/Gui/TaskDimension.cpp b/src/Mod/TechDraw/Gui/TaskDimension.cpp index d65cf24b0a..7dcde0f5fd 100644 --- a/src/Mod/TechDraw/Gui/TaskDimension.cpp +++ b/src/Mod/TechDraw/Gui/TaskDimension.cpp @@ -254,8 +254,17 @@ void TaskDimension::onArbitraryChanged() void TaskDimension::onFormatSpecifierOverToleranceChanged() { +// Base::Console().Message("TD::onFormatSpecifierOverToleranceChanged()\n"); + // if (m_blockToleranceLoop) { return; } m_parent->getDimFeat()->FormatSpecOverTolerance.setValue(ui->leFormatSpecifierOverTolerance->text().toUtf8().constData()); - if (!ui->cbArbitraryTolerances->isChecked()) { + if (ui->cbArbitraryTolerances->isChecked() ) { + // Don't do anything else if tolerance is Arbitrary + recomputeFeature(); + return; + } + + if (ui->cbEqualTolerance->isChecked()) { + // the under tolerance has to match this one ui->leFormatSpecifierUnderTolerance->setText(ui->leFormatSpecifierOverTolerance->text()); m_parent->getDimFeat()->FormatSpecUnderTolerance.setValue(ui->leFormatSpecifierUnderTolerance->text().toUtf8().constData()); } @@ -264,8 +273,16 @@ void TaskDimension::onFormatSpecifierOverToleranceChanged() void TaskDimension::onFormatSpecifierUnderToleranceChanged() { +// Base::Console().Message("TD::onFormatSpecifierUnderToleranceChanged()\n"); m_parent->getDimFeat()->FormatSpecUnderTolerance.setValue(ui->leFormatSpecifierUnderTolerance->text().toUtf8().constData()); - if (!ui->cbArbitraryTolerances->isChecked()) { + if (ui->cbArbitraryTolerances->isChecked() ) { + // Don't do anything else if tolerance is Arbitrary + recomputeFeature(); + return; + } + if (ui->cbEqualTolerance->isChecked()) { + // if EqualTolerance is checked, then underTolerance is disabled, so this shouldn't happen! + // the over tolerance has to match this one ui->leFormatSpecifierOverTolerance->setText(ui->leFormatSpecifierUnderTolerance->text()); m_parent->getDimFeat()->FormatSpecOverTolerance.setValue(ui->leFormatSpecifierOverTolerance->text().toUtf8().constData()); }