diff --git a/plugins/robots/common/twoDModel/src/engine/constraints/details/constraintsParser.cpp b/plugins/robots/common/twoDModel/src/engine/constraints/details/constraintsParser.cpp index 5c98d6f3b4..455c2cae6e 100644 --- a/plugins/robots/common/twoDModel/src/engine/constraints/details/constraintsParser.cpp +++ b/plugins/robots/common/twoDModel/src/engine/constraints/details/constraintsParser.cpp @@ -605,7 +605,11 @@ Value ConstraintsParser::parseBinaryValueTag(const QDomElement &element) return mValues.sum(leftValue, rightValue); } - if (operation.startsWith("difference")) { + if (operation == "mul") { + return mValues.mul(leftValue, rightValue); + } + + if (operation == "difference") { return mValues.difference(leftValue, rightValue); } @@ -621,7 +625,7 @@ Value ConstraintsParser::parseBinaryValueTag(const QDomElement &element) return mValues.distance(leftValue, rightValue); } - return mValues.sum(leftValue, rightValue); + qFatal("Unknown operator: %s\n", qPrintable(operation)); } Trigger ConstraintsParser::parseEventSetDropTag(const QDomElement &element) @@ -687,7 +691,7 @@ Value ConstraintsParser::parseValue(const QDomElement &element) return parseUnaryValueTag(element); } - if (tag == "sum" || tag == "difference" || tag == "min" || tag == "max" || tag == "distance") { + if (tag == "mul" || tag == "sum" || tag == "difference" || tag == "min" || tag == "max" || tag == "distance") { return parseBinaryValueTag(element); } diff --git a/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.cpp b/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.cpp index f4369a6fa4..382392072d 100644 --- a/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.cpp +++ b/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.cpp @@ -133,6 +133,12 @@ Value ValuesFactory::sum(const Value &left, const Value &right) const return [left, right]() { return left().toInt() + right().toInt(); }; } +Value ValuesFactory::mul(const Value &left, const Value &right) const +{ + return [left, right]() { return left().toInt() * right().toInt(); }; +} + + Value ValuesFactory::difference(const Value &left, const Value &right) const { return [left, right]() { return left().toInt() - right().toInt(); }; diff --git a/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.h b/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.h index 02cbf9ad9f..5136021789 100644 --- a/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.h +++ b/plugins/robots/common/twoDModel/src/engine/constraints/details/valuesFactory.h @@ -74,6 +74,10 @@ class ValuesFactory /// If values cannot be implicitly converted to integers 0 will be returned. Value sum(const Value &left, const Value &right) const; + /// Produces functor that returns a multiplication of two given integer values + /// If values cannot be implicitly converted to integers 0 will be returned. + Value mul(const Value &left, const Value &right) const; + /// Produces functor that returns a difference of two given numeric values. /// If values cannot be implicitly converted to integers 0 will be returned. Value difference(const Value &left, const Value &right) const; diff --git a/qrtranslations/fr/plugins/robots/twoDModel_fr.ts b/qrtranslations/fr/plugins/robots/twoDModel_fr.ts index d2a9c2fa65..96c82cad93 100644 --- a/qrtranslations/fr/plugins/robots/twoDModel_fr.ts +++ b/qrtranslations/fr/plugins/robots/twoDModel_fr.ts @@ -84,7 +84,7 @@ - + Unknown value "%1". Valeur inconnue "%1". @@ -144,7 +144,7 @@ - + Unknown type of object "%1" diff --git a/qrtranslations/ru/plugins/robots/twoDModel_ru.ts b/qrtranslations/ru/plugins/robots/twoDModel_ru.ts index 14ba892480..5f91fc4e94 100644 --- a/qrtranslations/ru/plugins/robots/twoDModel_ru.ts +++ b/qrtranslations/ru/plugins/robots/twoDModel_ru.ts @@ -253,7 +253,7 @@ В выражении "using" должен иметься тэг "return". - + Unknown value "%1". Неизвестное значение "%1". @@ -350,7 +350,7 @@ Путь до объекта пуст! - + Unknown type of object "%1" Неизвестный тип объекта "%1"