App: add expression build-in href() for backward compatibility

As deprecated alias for hiddenref()
This commit is contained in:
Zheng, Lei
2021-11-27 21:41:08 +08:00
committed by Chris Hennes
parent 5f3c869ac4
commit 10f1ac8436
2 changed files with 7 additions and 2 deletions

View File

@@ -1748,6 +1748,7 @@ FunctionExpression::FunctionExpression(const DocumentObject *_owner, Function _f
case MINVERT:
case STR:
case HIDDENREF:
case HREF:
if (args.size() != 1)
EXPR_THROW("Invalid number of arguments: exactly one required.");
break;
@@ -2099,7 +2100,7 @@ Py::Object FunctionExpression::evaluate(const Expression *expr, int f, const std
return res;
} else if (f == STR) {
return Py::String(args[0]->getPyValue().as_string());
} else if (f == HIDDENREF) {
} else if (f == HIDDENREF || f == HREF) {
return args[0]->getPyValue();
}
@@ -2437,6 +2438,8 @@ void FunctionExpression::_toString(std::ostream &ss, bool persistent,int) const
ss << "str("; break;;
case HIDDENREF:
ss << "hiddenref("; break;;
case HREF:
ss << "href("; break;;
default:
ss << fname << "("; break;;
}
@@ -2470,7 +2473,7 @@ void FunctionExpression::_visit(ExpressionVisitor &v)
{
std::vector<Expression*>::const_iterator i = args.begin();
HiddenReference ref(f == HIDDENREF);
HiddenReference ref(f == HIDDENREF || f == HREF);
while (i != args.end()) {
(*i)->visit(v);
++i;
@@ -3252,6 +3255,7 @@ static void initParser(const App::DocumentObject *owner)
registered_functions["create"] = FunctionExpression::CREATE;
registered_functions["str"] = FunctionExpression::STR;
registered_functions["hiddenref"] = FunctionExpression::HIDDENREF;
registered_functions["href"] = FunctionExpression::HREF;
// Aggregates
registered_functions["sum"] = FunctionExpression::SUM;