From f5586b3d366cf9ca6d677e4646edf4706ea6a515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Mon, 19 Nov 2018 16:21:29 +0100 Subject: [PATCH] [apps] Clean the syntax error warning displaying --- apps/calculation/app.cpp | 2 +- apps/calculation/app.h | 2 +- apps/calculation/edit_expression_controller.cpp | 3 ++- apps/shared/expression_field_delegate_app.cpp | 2 +- apps/shared/text_field_delegate_app.cpp | 15 +++++---------- apps/shared/text_field_delegate_app.h | 4 ++-- 6 files changed, 12 insertions(+), 16 deletions(-) diff --git a/apps/calculation/app.cpp b/apps/calculation/app.cpp index faaf11a74..289e5dfa1 100644 --- a/apps/calculation/app.cpp +++ b/apps/calculation/app.cpp @@ -61,7 +61,7 @@ bool App::layoutFieldDidReceiveEvent(::LayoutField * layoutField, Ion::Events::E return Shared::ExpressionFieldDelegateApp::layoutFieldDidReceiveEvent(layoutField, event); } -bool App::isAcceptableExpression(const Poincare::Expression expression, Responder * responder) { +bool App::isAcceptableExpression(const Poincare::Expression expression) { /* Here, we check that the expression entered by the user can be printed with * less than k_printedExpressionLength characters. Otherwise, we prevent the * user from adding this expression to the calculation store. */ diff --git a/apps/calculation/app.h b/apps/calculation/app.h index 120b56585..bcb8a3fd9 100644 --- a/apps/calculation/app.h +++ b/apps/calculation/app.h @@ -30,7 +30,7 @@ public: bool textFieldDidReceiveEvent(::TextField * textField, Ion::Events::Event event) override; bool layoutFieldDidReceiveEvent(::LayoutField * layoutField, Ion::Events::Event event) override; // TextFieldDelegateApp - bool isAcceptableExpression(const Poincare::Expression expression, Responder * responder) override; + bool isAcceptableExpression(const Poincare::Expression expression) override; char XNT() override; private: App(Container * container, Snapshot * snapshot); diff --git a/apps/calculation/edit_expression_controller.cpp b/apps/calculation/edit_expression_controller.cpp index e8db9d3f9..3423d8705 100644 --- a/apps/calculation/edit_expression_controller.cpp +++ b/apps/calculation/edit_expression_controller.cpp @@ -130,7 +130,8 @@ bool EditExpressionController::inputViewDidReceiveEvent(Ion::Events::Event event App * calculationApp = (App *)app(); /* The input text store in m_cacheBuffer might have beed correct the first * time but then be too long when replacing ans in another context */ - if (!calculationApp->isAcceptableText(m_cacheBuffer, calculationApp)) { + if (!calculationApp->isAcceptableText(m_cacheBuffer)) { + calculationApp->displayWarning(I18n::Message::SyntaxError); return true; } m_calculationStore->push(m_cacheBuffer, calculationApp->localContext()); diff --git a/apps/shared/expression_field_delegate_app.cpp b/apps/shared/expression_field_delegate_app.cpp index a9888b05e..adae15e72 100644 --- a/apps/shared/expression_field_delegate_app.cpp +++ b/apps/shared/expression_field_delegate_app.cpp @@ -32,7 +32,7 @@ bool ExpressionFieldDelegateApp::layoutFieldDidReceiveEvent(LayoutField * layout displayWarning(I18n::Message::SyntaxError); return true; } - if (!isAcceptableText(buffer, layoutField)) { + if (!isAcceptableText(buffer)) { displayWarning(I18n::Message::SyntaxError); return true; } diff --git a/apps/shared/text_field_delegate_app.cpp b/apps/shared/text_field_delegate_app.cpp index f2391b453..f36d1acc1 100644 --- a/apps/shared/text_field_delegate_app.cpp +++ b/apps/shared/text_field_delegate_app.cpp @@ -21,7 +21,8 @@ bool TextFieldDelegateApp::textFieldShouldFinishEditing(TextField * textField, I bool TextFieldDelegateApp::textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) { if (textField->isEditing() && textField->shouldFinishEditing(event)) { - if (!isAcceptableText(textField->text(), textField)) { + if (!isAcceptableText(textField->text())) { + textField->app()->displayWarning(I18n::Message::SyntaxError); return true; } } @@ -32,9 +33,9 @@ bool TextFieldDelegateApp::textFieldDidReceiveEvent(TextField * textField, Ion:: } -bool TextFieldDelegateApp::isAcceptableText(const char * text, Responder * responder) { +bool TextFieldDelegateApp::isAcceptableText(const char * text) { Expression exp = Expression::parse(text); - return isAcceptableExpression(exp, responder); + return isAcceptableExpression(exp); } /* Protected */ @@ -60,18 +61,12 @@ bool TextFieldDelegateApp::isFinishingEvent(Ion::Events::Event event) { return event == Ion::Events::OK || event == Ion::Events::EXE; } -bool TextFieldDelegateApp::isAcceptableExpression(const Expression exp, Responder * responder) { +bool TextFieldDelegateApp::isAcceptableExpression(const Expression exp) { if (exp.isUninitialized()) { - if (responder != nullptr) { - responder->app()->displayWarning(I18n::Message::SyntaxError); - } return false; } if (exp.type() == ExpressionNode::Type::Store) { // Most textfields do not allow Store "3->a" or "5->f(x)" - if (responder != nullptr) { - responder->app()->displayWarning(I18n::Message::StoreExpressionNotAllowed); - } return false; } return true; diff --git a/apps/shared/text_field_delegate_app.h b/apps/shared/text_field_delegate_app.h index 6910d8dca..76599c0c0 100644 --- a/apps/shared/text_field_delegate_app.h +++ b/apps/shared/text_field_delegate_app.h @@ -17,12 +17,12 @@ public: virtual char XNT(); bool textFieldShouldFinishEditing(TextField * textField, Ion::Events::Event event) override; virtual bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override; - bool isAcceptableText(const char * text, Responder * responder); + bool isAcceptableText(const char * text); protected: TextFieldDelegateApp(Container * container, Snapshot * snapshot, ViewController * rootViewController); bool fieldDidReceiveEvent(EditableField * field, Responder * responder, Ion::Events::Event event); bool isFinishingEvent(Ion::Events::Event event); - virtual bool isAcceptableExpression(const Poincare::Expression expression, Responder * responder); + virtual bool isAcceptableExpression(const Poincare::Expression expression); }; }