From 702ae025c7d97bd8495523e523b8754a5ed7155b Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 20 Dec 2019 16:54:56 +0100 Subject: [PATCH] Gui: [skip ci] reduce confusion m vs. mm in units calculator --- src/Gui/DlgUnitsCalculatorImp.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Gui/DlgUnitsCalculatorImp.cpp b/src/Gui/DlgUnitsCalculatorImp.cpp index e8dcfd8377..fc39350761 100644 --- a/src/Gui/DlgUnitsCalculatorImp.cpp +++ b/src/Gui/DlgUnitsCalculatorImp.cpp @@ -187,8 +187,15 @@ void DlgUnitsCalculator::returnPressed(void) void DlgUnitsCalculator::on_unitsBox_activated(int index) { - ui->quantitySpinBox->setValue(1.0); - ui->quantitySpinBox->setUnit(units[index]); + // SI units use [m], not [mm] for lengths + // + Base::Quantity q = ui->quantitySpinBox->value(); + int32_t old = q.getUnit().getSignature().Length; + double value = q.getValue(); + + Base::Unit unit = units[index]; + int32_t len = unit.getSignature().Length; + ui->quantitySpinBox->setValue(Base::Quantity(value * std::pow(10.0, 3*(len-old)), unit)); } void DlgUnitsCalculator::on_comboBoxScheme_activated(int index)