From 56d23c213d693ca8ee87aee740cca6fc12bd20fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Mon, 4 Jun 2018 16:54:43 +0200 Subject: [PATCH] [solver] Delete equation at first backspace event (instead of clearing the expression as in Graph/Sequence) --- apps/shared/expression_model.h | 3 +++ apps/shared/expression_model_list_controller.cpp | 2 +- apps/solver/equation.h | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/shared/expression_model.h b/apps/shared/expression_model.h index 8482e9f04..d511abe03 100644 --- a/apps/shared/expression_model.h +++ b/apps/shared/expression_model.h @@ -20,6 +20,9 @@ public: Poincare::ExpressionLayout * layout(); virtual bool isDefined(); virtual bool isEmpty(); + virtual bool shouldBeClearedBeforeRemove() { + return !isEmpty(); + } virtual void setContent(const char * c); virtual void tidy(); private: diff --git a/apps/shared/expression_model_list_controller.cpp b/apps/shared/expression_model_list_controller.cpp index b720aca9e..cb09deb82 100644 --- a/apps/shared/expression_model_list_controller.cpp +++ b/apps/shared/expression_model_list_controller.cpp @@ -70,7 +70,7 @@ bool ExpressionModelListController::handleEventOnExpression(Ion::Events::Event e } if (event == Ion::Events::Backspace && !isAddEmptyRow(selectedRow())) { ExpressionModel * model = modelStore()->modelAtIndex(modelIndexForRow(selectedRow())); - if (!model->isEmpty()) { + if (model->shouldBeClearedBeforeRemove()) { reinitExpression(model); } else { if (removeModelRow(model)) { diff --git a/apps/solver/equation.h b/apps/solver/equation.h index e615454cc..3fa925cb0 100644 --- a/apps/solver/equation.h +++ b/apps/solver/equation.h @@ -15,6 +15,9 @@ public: Equation(Equation&& other) = delete; void setContent(const char * c) override; void tidy() override; + bool shouldBeClearedBeforeRemove() override { + return false; + } Poincare::Expression * standardForm(Poincare::Context * context) const; private: mutable Poincare::Expression * m_standardForm;