UnitsCalculator fixes

- missing initial value
- missing check for invalid units starting with 'e'
This commit is contained in:
donovaly
2019-12-20 00:52:46 +01:00
committed by wwmayer
parent af011dabd9
commit 07549653cd

View File

@@ -80,6 +80,7 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl )
ui->unitsBox->addItem(it->getTypeString());
}
ui->quantitySpinBox->setValue(1.0);
ui->quantitySpinBox->setUnit(units.front());
}
@@ -106,8 +107,11 @@ void DlgUnitsCalculator::textChanged(QString unit)
void DlgUnitsCalculator::valueChanged(const Base::Quantity& quant)
{
// first check the unit, if it is invalid, getTypeString() outputs an empty string
if (Base::Unit(ui->UnitInput->text()).getTypeString().isEmpty()) {
// first check the unit, if it is invalid, getTypeString() outputs an empty string
// explicitly check for "ee" like in "eeV" because this would trigger an exception in Base::Unit
// since it expects then a scientific notation number like "1e3"
if ( (ui->UnitInput->text().mid(0, 2) == QString::fromLatin1("ee")) ||
Base::Unit(ui->UnitInput->text()).getTypeString().isEmpty()) {
ui->ValueOutput->setText(tr("unknown unit: ") + ui->UnitInput->text());
ui->pushButton_Copy->setEnabled(false);
} else { // the unit is valid