Merge pull request #23240 from wwmayer/issue_23222

Sheet: Verify that UnitExpression is valid
This commit is contained in:
Benjamin Nauck
2025-08-20 16:40:39 +02:00
committed by GitHub

View File

@@ -221,12 +221,19 @@ void PropertiesDialog::displayUnitChanged(const QString& text)
QPalette palette = ui->displayUnit->palette();
try {
std::unique_ptr<UnitExpression> e(
std::unique_ptr<UnitExpression> 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();