Merge pull request #23240 from wwmayer/issue_23222
Sheet: Verify that UnitExpression is valid
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user