summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-11-26 01:30:12 +0100
committerGitHub <noreply@github.com>2020-11-26 01:30:12 +0100
commit3891ac26826db06d0c8a2829d1ae7494225231db (patch)
tree251fca7742cfa54f6414d3a213649290a78ff76d /Source/Core/InputCommon
parente2a019ae9a793292220c654f29e1ddabb2806e65 (diff)
parent11e226a91a1f38061b33deb247ca2e33e748305b (diff)
Merge pull request #9232 from AdmiralCurtiss/show-result-value-in-expression-editor
Qt/IOWindow: Show result value in expression editor.
Diffstat (limited to 'Source/Core/InputCommon')
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.cpp3
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.h4
2 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.cpp b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
index b1dd5deee3..671f2f3379 100644
--- a/Source/Core/InputCommon/ControlReference/ControlReference.cpp
+++ b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
@@ -50,12 +50,13 @@ std::string ControlReference::GetExpression() const
return m_expression;
}
-void ControlReference::SetExpression(std::string expr)
+std::optional<std::string> ControlReference::SetExpression(std::string expr)
{
m_expression = std::move(expr);
auto parse_result = ParseExpression(m_expression);
m_parse_status = parse_result.status;
m_parsed_expression = std::move(parse_result.expr);
+ return parse_result.description;
}
ControlReference::ControlReference() : range(1), m_parsed_expression(nullptr)
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.h b/Source/Core/InputCommon/ControlReference/ControlReference.h
index de289ba265..fb4b5cc1df 100644
--- a/Source/Core/InputCommon/ControlReference/ControlReference.h
+++ b/Source/Core/InputCommon/ControlReference/ControlReference.h
@@ -38,7 +38,9 @@ public:
ciface::ExpressionParser::ParseStatus GetParseStatus() const;
void UpdateReference(ciface::ExpressionParser::ControlEnvironment& env);
std::string GetExpression() const;
- void SetExpression(std::string expr);
+
+ // Returns a human-readable error description when the given expression is invalid.
+ std::optional<std::string> SetExpression(std::string expr);
ControlState range;