From ed74c4e6e280400bb8ef764c7c4060d5b1c3789d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 8 Jun 2018 10:40:11 +0200 Subject: [PATCH] [solver] Reload the brace view when adding or removing row in the list controller --- apps/solver/list_controller.cpp | 14 ++++++++++++++ apps/solver/list_controller.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/apps/solver/list_controller.cpp b/apps/solver/list_controller.cpp index 53236538b..e862c2cb7 100644 --- a/apps/solver/list_controller.cpp +++ b/apps/solver/list_controller.cpp @@ -101,6 +101,8 @@ void ListController::didBecomeFirstResponder() { void ListController::didEnterResponderChain(Responder * previousFirstResponder) { selectableTableView()->reloadData(); + // Reload brace if the model store has evolved + reloadBrace(); } bool textRepresentsAnEquality(const char * text) { @@ -189,6 +191,18 @@ void ListController::addEmptyModel() { app()->displayModalViewController(&m_modelsStackController, 0.f, 0.f, Metric::CommonTopMargin, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin); } +bool ListController::removeModelRow(ExpressionModel * model) { + ExpressionModelListController::removeModelRow(model); + reloadBrace(); + return true; +} + +void ListController::reloadBrace() { + EquationListView * listView = static_cast(view()); + listView->displayBrace(m_equationStore->numberOfModels() > 1); + listView->layoutSubviews(); +} + SelectableTableView * ListController::selectableTableView() { return static_cast(view())->selectableTableView(); } diff --git a/apps/solver/list_controller.h b/apps/solver/list_controller.h index 720ec4eec..5f66f9cb6 100644 --- a/apps/solver/list_controller.h +++ b/apps/solver/list_controller.h @@ -48,6 +48,8 @@ private: SelectableTableView * selectableTableView() override; void reloadButtonMessage(); void addEmptyModel() override; + bool removeModelRow(Shared::ExpressionModel * function) override; + void reloadBrace(); View * loadView() override; void unloadView(View * view) override; Shared::ExpressionModelStore * modelStore() override { return m_equationStore; }