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"