diff --git a/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp b/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp index 3cecd1940a..35a6bc2e16 100644 --- a/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp +++ b/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp @@ -221,12 +221,19 @@ void PropertiesDialog::displayUnitChanged(const QString& text) QPalette palette = ui->displayUnit->palette(); try { - std::unique_ptr e( + std::unique_ptr expr( App::ExpressionParser::parseUnit(sheet, text.toUtf8().constData())); - displayUnit = DisplayUnit(text.toUtf8().constData(), e->getUnit(), e->getScaler()); - palette.setColor(QPalette::Text, Qt::black); - displayUnitOk = true; + if (expr) { + displayUnit = DisplayUnit(text.toStdString(), expr->getUnit(), expr->getScaler()); + palette.setColor(QPalette::Text, Qt::black); + displayUnitOk = true; + } + else { + displayUnit = DisplayUnit(); + palette.setColor(QPalette::Text, text.size() == 0 ? Qt::black : Qt::red); + displayUnitOk = false; + } } catch (...) { displayUnit = DisplayUnit();