ParseStatus: replace NoDevice with EmptyExpression
This commit is contained in:
parent
754efd75c5
commit
85301e2bae
|
@ -347,11 +347,12 @@ void ControlDialog::UpdateGUI()
|
||||||
case ParseStatus::SyntaxError:
|
case ParseStatus::SyntaxError:
|
||||||
m_error_label->SetLabel(_("Syntax error"));
|
m_error_label->SetLabel(_("Syntax error"));
|
||||||
break;
|
break;
|
||||||
case ParseStatus::NoDevice:
|
case ParseStatus::Successful:
|
||||||
m_error_label->SetLabel(_("Device not found"));
|
m_error_label->SetLabel(control_reference->BoundCount() > 0 ? "" : _("Device not found"));
|
||||||
break;
|
break;
|
||||||
default:
|
case ParseStatus::EmptyExpression:
|
||||||
m_error_label->SetLabel("");
|
m_error_label->SetLabel("");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -408,7 +409,7 @@ bool ControlDialog::Validate()
|
||||||
UpdateGUI();
|
UpdateGUI();
|
||||||
|
|
||||||
const auto parse_status = control_reference->GetParseStatus();
|
const auto parse_status = control_reference->GetParseStatus();
|
||||||
return parse_status == ParseStatus::Successful || parse_status == ParseStatus::NoDevice;
|
return parse_status == ParseStatus::Successful || parse_status == ParseStatus::EmptyExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputConfigDialog::SetDevice(wxCommandEvent&)
|
void InputConfigDialog::SetDevice(wxCommandEvent&)
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "Common/StringUtil.h"
|
||||||
#include "InputCommon/ControlReference/ExpressionParser.h"
|
#include "InputCommon/ControlReference/ExpressionParser.h"
|
||||||
|
|
||||||
using namespace ciface::Core;
|
using namespace ciface::Core;
|
||||||
|
@ -393,9 +394,6 @@ private:
|
||||||
{
|
{
|
||||||
std::shared_ptr<Device> device = finder.FindDevice(tok.qualifier);
|
std::shared_ptr<Device> device = finder.FindDevice(tok.qualifier);
|
||||||
Device::Control* control = finder.FindControl(tok.qualifier);
|
Device::Control* control = finder.FindControl(tok.qualifier);
|
||||||
if (control == nullptr)
|
|
||||||
return {ParseStatus::NoDevice, std::make_unique<ControlExpression>(tok.qualifier, control)};
|
|
||||||
|
|
||||||
return {ParseStatus::Successful,
|
return {ParseStatus::Successful,
|
||||||
std::make_unique<ControlExpression>(tok.qualifier, std::move(device), control)};
|
std::make_unique<ControlExpression>(tok.qualifier, std::move(device), control)};
|
||||||
}
|
}
|
||||||
|
@ -510,8 +508,8 @@ Expression::~Expression()
|
||||||
static std::pair<ParseStatus, std::unique_ptr<Expression>>
|
static std::pair<ParseStatus, std::unique_ptr<Expression>>
|
||||||
ParseExpressionInner(const std::string& str, ControlFinder& finder)
|
ParseExpressionInner(const std::string& str, ControlFinder& finder)
|
||||||
{
|
{
|
||||||
if (str == "")
|
if (StripSpaces(str).empty())
|
||||||
return std::make_pair(ParseStatus::Successful, nullptr);
|
return std::make_pair(ParseStatus::EmptyExpression, nullptr);
|
||||||
|
|
||||||
Lexer l(str);
|
Lexer l(str);
|
||||||
std::vector<Token> tokens;
|
std::vector<Token> tokens;
|
||||||
|
|
|
@ -63,7 +63,7 @@ enum class ParseStatus
|
||||||
{
|
{
|
||||||
Successful,
|
Successful,
|
||||||
SyntaxError,
|
SyntaxError,
|
||||||
NoDevice,
|
EmptyExpression,
|
||||||
};
|
};
|
||||||
|
|
||||||
std::pair<ParseStatus, std::unique_ptr<Expression>> ParseExpression(const std::string& expr,
|
std::pair<ParseStatus, std::unique_ptr<Expression>> ParseExpression(const std::string& expr,
|
||||||
|
|
Loading…
Reference in New Issue