[solver] The 'resolve' button evolves from 'Resolve equation' to

'Resolve system'
This commit is contained in:
Émilie Feral
2018-06-07 11:22:54 +02:00
parent 2dec9e6244
commit 0a27cc1584
8 changed files with 29 additions and 7 deletions

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -102,7 +102,7 @@ void IntervalController::buttonAction() {
}
I18n::Message IntervalController::okButtonText() {
return I18n::Message::Resolve;
return I18n::Message::ResolveEquation;
}
View * IntervalController::loadView() {

View File

@@ -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);
}

View File

@@ -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;