[solver] If the user adds an equation which is not an equality,

automatically add =0
This commit is contained in:
Émilie Feral
2018-06-08 15:46:38 +02:00
parent f4b87f8680
commit e3bfec9aa2
6 changed files with 8 additions and 15 deletions

View File

@@ -113,30 +113,28 @@ bool textRepresentsAnEquality(const char * text) {
}
bool ListController::textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) {
if (Shared::TextFieldDelegate::textFieldDidReceiveEvent(textField, event)) {
return true;
}
if (textField->isEditing() && textField->textFieldShouldFinishEditing(event)) {
if (!textRepresentsAnEquality(textField->text())) {
app()->displayWarning(I18n::Message::RequireEquation);
return true;
textField->handleEventWithText("=0");
}
}
if (Shared::TextFieldDelegate::textFieldDidReceiveEvent(textField, event)) {
return true;
}
return false;
}
bool ListController::expressionLayoutFieldDidReceiveEvent(ExpressionLayoutField * expressionLayoutField, Ion::Events::Event event) {
if (Shared::ExpressionLayoutFieldDelegate::expressionLayoutFieldDidReceiveEvent(expressionLayoutField, event)) {
return true;
}
if (expressionLayoutField->isEditing() && expressionLayoutField->expressionLayoutFieldShouldFinishEditing(event)) {
char buffer[TextField::maxBufferSize()];
expressionLayoutField->writeTextInBuffer(buffer, TextField::maxBufferSize());
if (!textRepresentsAnEquality(buffer)) {
app()->displayWarning(I18n::Message::RequireEquation);
return true;
expressionLayoutField->handleEventWithText("=0");
}
}
if (Shared::ExpressionLayoutFieldDelegate::expressionLayoutFieldDidReceiveEvent(expressionLayoutField, event)) {
return true;
}
return false;
}