From 0a27cc1584fae45e47d995e1fc21d200492f2cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 7 Jun 2018 11:22:54 +0200 Subject: [PATCH] [solver] The 'resolve' button evolves from 'Resolve equation' to 'Resolve system' --- apps/solver/base.de.i18n | 3 ++- apps/solver/base.en.i18n | 3 ++- apps/solver/base.es.i18n | 3 ++- apps/solver/base.fr.i18n | 3 ++- apps/solver/base.pt.i18n | 3 ++- apps/solver/interval_controller.cpp | 2 +- apps/solver/list_controller.cpp | 16 +++++++++++++++- apps/solver/list_controller.h | 3 +++ 8 files changed, 29 insertions(+), 7 deletions(-) diff --git a/apps/solver/base.de.i18n b/apps/solver/base.de.i18n index 843c7dea8..c3b40419b 100644 --- a/apps/solver/base.de.i18n +++ b/apps/solver/base.de.i18n @@ -1,7 +1,8 @@ SolverApp = "Equation" SolverAppCapital = "EQUATION" AddEquation = "Ajouter une équation" -Resolve = "Résoudre l'équation" +ResolveEquation = "Résoudre l'équation" +ResolveSystem = "Résoudre le système" RequireEquation = "L'entrée doit être une équation" UseEquationModel = "Utiliser le modèle d'équation" UndefinedEquation = "Une equation est indéfinie" diff --git a/apps/solver/base.en.i18n b/apps/solver/base.en.i18n index 843c7dea8..c3b40419b 100644 --- a/apps/solver/base.en.i18n +++ b/apps/solver/base.en.i18n @@ -1,7 +1,8 @@ SolverApp = "Equation" SolverAppCapital = "EQUATION" AddEquation = "Ajouter une équation" -Resolve = "Résoudre l'équation" +ResolveEquation = "Résoudre l'équation" +ResolveSystem = "Résoudre le système" RequireEquation = "L'entrée doit être une équation" UseEquationModel = "Utiliser le modèle d'équation" UndefinedEquation = "Une equation est indéfinie" diff --git a/apps/solver/base.es.i18n b/apps/solver/base.es.i18n index 843c7dea8..c3b40419b 100644 --- a/apps/solver/base.es.i18n +++ b/apps/solver/base.es.i18n @@ -1,7 +1,8 @@ SolverApp = "Equation" SolverAppCapital = "EQUATION" AddEquation = "Ajouter une équation" -Resolve = "Résoudre l'équation" +ResolveEquation = "Résoudre l'équation" +ResolveSystem = "Résoudre le système" RequireEquation = "L'entrée doit être une équation" UseEquationModel = "Utiliser le modèle d'équation" UndefinedEquation = "Une equation est indéfinie" diff --git a/apps/solver/base.fr.i18n b/apps/solver/base.fr.i18n index 843c7dea8..c3b40419b 100644 --- a/apps/solver/base.fr.i18n +++ b/apps/solver/base.fr.i18n @@ -1,7 +1,8 @@ SolverApp = "Equation" SolverAppCapital = "EQUATION" AddEquation = "Ajouter une équation" -Resolve = "Résoudre l'équation" +ResolveEquation = "Résoudre l'équation" +ResolveSystem = "Résoudre le système" RequireEquation = "L'entrée doit être une équation" UseEquationModel = "Utiliser le modèle d'équation" UndefinedEquation = "Une equation est indéfinie" diff --git a/apps/solver/base.pt.i18n b/apps/solver/base.pt.i18n index 843c7dea8..c3b40419b 100644 --- a/apps/solver/base.pt.i18n +++ b/apps/solver/base.pt.i18n @@ -1,7 +1,8 @@ SolverApp = "Equation" SolverAppCapital = "EQUATION" AddEquation = "Ajouter une équation" -Resolve = "Résoudre l'équation" +ResolveEquation = "Résoudre l'équation" +ResolveSystem = "Résoudre le système" RequireEquation = "L'entrée doit être une équation" UseEquationModel = "Utiliser le modèle d'équation" UndefinedEquation = "Une equation est indéfinie" diff --git a/apps/solver/interval_controller.cpp b/apps/solver/interval_controller.cpp index 1d9196305..2e0c4a80f 100644 --- a/apps/solver/interval_controller.cpp +++ b/apps/solver/interval_controller.cpp @@ -102,7 +102,7 @@ void IntervalController::buttonAction() { } I18n::Message IntervalController::okButtonText() { - return I18n::Message::Resolve; + return I18n::Message::ResolveEquation; } View * IntervalController::loadView() { diff --git a/apps/solver/list_controller.cpp b/apps/solver/list_controller.cpp index 19f7b0022..354ca73b3 100644 --- a/apps/solver/list_controller.cpp +++ b/apps/solver/list_controller.cpp @@ -10,7 +10,7 @@ ListController::ListController(Responder * parentResponder, EquationStore * equa ExpressionModelListController(parentResponder, I18n::Message::AddEquation), ButtonRowDelegate(nullptr, footer), m_equationStore(equationStore), - m_resolveButton(this, I18n::Message::Resolve, Invocation([](void * context, void * sender) { + m_resolveButton(this, I18n::Message::ResolveEquation, Invocation([](void * context, void * sender) { ListController * list = (ListController *)context; list->resolveEquations(); }, this), KDText::FontSize::Small, Palette::PurpleBright), @@ -140,6 +140,16 @@ bool ListController::expressionLayoutFieldDidReceiveEvent(ExpressionLayoutField return false; } +bool ListController::textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) { + reloadButtonMessage(); + return true; +} + +bool ListController::expressionLayoutFieldDidFinishEditing(ExpressionLayoutField * expressionLayoutField, Poincare::ExpressionLayout * layout, Ion::Events::Event event) { + reloadButtonMessage(); + return true; +} + void ListController::resolveEquations() { if (m_equationStore->numberOfDefinedModels() == 0) { app()->displayWarning(I18n::Message::EnterEquation); @@ -173,6 +183,10 @@ void ListController::resolveEquations() { } } +void ListController::reloadButtonMessage() { + m_resolveButton.setMessage(m_equationStore->numberOfDefinedModels() > 1 ? I18n::Message::ResolveSystem : I18n::Message::ResolveEquation); +} + void ListController::addEmptyModel() { app()->displayModalViewController(&m_modelsStackController, 0.f, 0.f, Metric::CommonTopMargin, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin); } diff --git a/apps/solver/list_controller.h b/apps/solver/list_controller.h index de82e2bdd..3de74a13e 100644 --- a/apps/solver/list_controller.h +++ b/apps/solver/list_controller.h @@ -39,10 +39,13 @@ public: Shared::ExpressionFieldDelegateApp * expressionFieldDelegateApp() override; bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override; bool expressionLayoutFieldDidReceiveEvent(ExpressionLayoutField * expressionLayoutField, Ion::Events::Event event) override; + bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; + bool expressionLayoutFieldDidFinishEditing(ExpressionLayoutField * expressionLayoutField, Poincare::ExpressionLayout * layout, Ion::Events::Event event) override; /* Specific to Solver */ void resolveEquations(); private: constexpr static int k_maxNumberOfRows = 5; // Ion::Display::Height / Metric::StoreRowHeight = 4.8; + void reloadButtonMessage(); void addEmptyModel() override; View * loadView() override; void unloadView(View * view) override;