From fef05389412df3714755ae0ed0bf6005fdc0dde4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Mon, 13 Jan 2020 13:45:14 +0100 Subject: [PATCH] [apps/calculation] Handle OK events on additional outputs pop-up - WIP --- .../additional_outputs/complex_list_controller.h | 4 ++-- .../expressions_list_controller.cpp | 4 ++-- .../additional_outputs/expressions_list_controller.h | 2 +- .../illustrated_list_controller.cpp | 4 ++-- .../additional_outputs/illustrated_list_controller.h | 2 +- .../additional_outputs/integer_list_controller.h | 4 ++-- .../additional_outputs/list_controller.cpp | 12 ++++++++++-- .../calculation/additional_outputs/list_controller.h | 5 ++++- .../additional_outputs/rational_list_controller.h | 4 ++-- .../trigonometry_list_controller.h | 4 ++-- apps/calculation/history_controller.cpp | 10 +++++++--- apps/calculation/history_controller.h | 2 +- 12 files changed, 36 insertions(+), 21 deletions(-) diff --git a/apps/calculation/additional_outputs/complex_list_controller.h b/apps/calculation/additional_outputs/complex_list_controller.h index 1566af044..1c7d2a654 100644 --- a/apps/calculation/additional_outputs/complex_list_controller.h +++ b/apps/calculation/additional_outputs/complex_list_controller.h @@ -9,8 +9,8 @@ namespace Calculation { class ComplexListController : public IllustratedListController { public: - ComplexListController() : - IllustratedListController(nullptr), + ComplexListController(EditExpressionController * editExpressionController) : + IllustratedListController(nullptr, editExpressionController), m_complexGraphCell(&m_model) {} // ViewController diff --git a/apps/calculation/additional_outputs/expressions_list_controller.cpp b/apps/calculation/additional_outputs/expressions_list_controller.cpp index 3ec99678b..b9cbef213 100644 --- a/apps/calculation/additional_outputs/expressions_list_controller.cpp +++ b/apps/calculation/additional_outputs/expressions_list_controller.cpp @@ -7,8 +7,8 @@ namespace Calculation { /* Expressions list controller */ -ExpressionsListController::ExpressionsListController(Responder * parentResponder) : - ListController(parentResponder), +ExpressionsListController::ExpressionsListController(Responder * parentResponder, EditExpressionController * editExpressionController) : + ListController(parentResponder, editExpressionController), m_cells{} { for (int i = 0; i < k_maxNumberOfCells; i++) { diff --git a/apps/calculation/additional_outputs/expressions_list_controller.h b/apps/calculation/additional_outputs/expressions_list_controller.h index 046edb84f..78441a8b1 100644 --- a/apps/calculation/additional_outputs/expressions_list_controller.h +++ b/apps/calculation/additional_outputs/expressions_list_controller.h @@ -10,7 +10,7 @@ namespace Calculation { class ExpressionsListController : public ListController { public: - ExpressionsListController(Responder * parentResponder); + ExpressionsListController(Responder * parentResponder, EditExpressionController * editExpressionController); // Responder void didEnterResponderChain(Responder * previousFirstResponder) override; diff --git a/apps/calculation/additional_outputs/illustrated_list_controller.cpp b/apps/calculation/additional_outputs/illustrated_list_controller.cpp index e907c6649..f73235344 100644 --- a/apps/calculation/additional_outputs/illustrated_list_controller.cpp +++ b/apps/calculation/additional_outputs/illustrated_list_controller.cpp @@ -8,8 +8,8 @@ namespace Calculation { /* Illustrated list controller */ -IllustratedListController::IllustratedListController(Responder * parentResponder) : - ListController(parentResponder, this), +IllustratedListController::IllustratedListController(Responder * parentResponder, EditExpressionController * editExpressionController) : + ListController(parentResponder, editExpressionController, this), m_additionalCalculationCells{} { for (int i = 0; i < k_maxNumberOfAdditionalCalculations; i++) { diff --git a/apps/calculation/additional_outputs/illustrated_list_controller.h b/apps/calculation/additional_outputs/illustrated_list_controller.h index 901bc3122..80a2d2b5c 100644 --- a/apps/calculation/additional_outputs/illustrated_list_controller.h +++ b/apps/calculation/additional_outputs/illustrated_list_controller.h @@ -11,7 +11,7 @@ namespace Calculation { class IllustratedListController : public ListController, public SelectableTableViewDelegate { public: - IllustratedListController(Responder * parentResponder); + IllustratedListController(Responder * parentResponder, EditExpressionController * editExpressionController); // Responder void viewDidDisappear() override; diff --git a/apps/calculation/additional_outputs/integer_list_controller.h b/apps/calculation/additional_outputs/integer_list_controller.h index db9c7f910..a0208762d 100644 --- a/apps/calculation/additional_outputs/integer_list_controller.h +++ b/apps/calculation/additional_outputs/integer_list_controller.h @@ -7,8 +7,8 @@ namespace Calculation { class IntegerListController : public ExpressionsListController { public: - IntegerListController() : - ExpressionsListController(nullptr) {} + IntegerListController(EditExpressionController * editExpressionController) : + ExpressionsListController(nullptr, editExpressionController) {} //ListViewDataSource int numberOfRows() const override; diff --git a/apps/calculation/additional_outputs/list_controller.cpp b/apps/calculation/additional_outputs/list_controller.cpp index 7bcb254f9..796893051 100644 --- a/apps/calculation/additional_outputs/list_controller.cpp +++ b/apps/calculation/additional_outputs/list_controller.cpp @@ -1,4 +1,5 @@ #include "list_controller.h" +#include "../edit_expression_controller.h" using namespace Poincare; @@ -20,13 +21,20 @@ void ListController::InnerListController::didBecomeFirstResponder() { /* List Controller */ -ListController::ListController(Responder * parentResponder, SelectableTableViewDelegate * delegate) : +ListController::ListController(Responder * parentResponder, EditExpressionController * editExpressionController, SelectableTableViewDelegate * delegate) : StackViewController(parentResponder, &m_listController, KDColorWhite, Palette::PurpleBright, Palette::PurpleDark), - m_listController(this, delegate) + m_listController(this, delegate), + m_editExpressionController(editExpressionController) { } bool ListController::handleEvent(Ion::Events::Event event) { + if (event == Ion::Events::OK || event == Ion::Events::EXE) { + m_editExpressionController->insertTextBody("TODO"); + Container::activeApp()->dismissModalViewController(); + Container::activeApp()->setFirstResponder(m_editExpressionController); + return true; + } return false; } diff --git a/apps/calculation/additional_outputs/list_controller.h b/apps/calculation/additional_outputs/list_controller.h index 16d987cb9..124d58161 100644 --- a/apps/calculation/additional_outputs/list_controller.h +++ b/apps/calculation/additional_outputs/list_controller.h @@ -6,9 +6,11 @@ namespace Calculation { +class EditExpressionController; + class ListController : public StackViewController, public ListViewDataSource, public SelectableTableViewDataSource { public: - ListController(Responder * parentResponder, SelectableTableViewDelegate * delegate = nullptr); + ListController(Responder * parentResponder, EditExpressionController * editExpressionController, SelectableTableViewDelegate * delegate = nullptr); // Responder bool handleEvent(Ion::Events::Event event) override; @@ -29,6 +31,7 @@ protected: SelectableTableView m_selectableTableView; }; InnerListController m_listController; + EditExpressionController * m_editExpressionController; }; } diff --git a/apps/calculation/additional_outputs/rational_list_controller.h b/apps/calculation/additional_outputs/rational_list_controller.h index aaa9ee375..cdc7883ac 100644 --- a/apps/calculation/additional_outputs/rational_list_controller.h +++ b/apps/calculation/additional_outputs/rational_list_controller.h @@ -7,8 +7,8 @@ namespace Calculation { class RationalListController : public ExpressionsListController { public: - RationalListController() : - ExpressionsListController(nullptr) {} + RationalListController(EditExpressionController * editExpressionController) : + ExpressionsListController(nullptr, editExpressionController) {} //ListViewDataSource int numberOfRows() const override; diff --git a/apps/calculation/additional_outputs/trigonometry_list_controller.h b/apps/calculation/additional_outputs/trigonometry_list_controller.h index d2c2b4392..dfec810d9 100644 --- a/apps/calculation/additional_outputs/trigonometry_list_controller.h +++ b/apps/calculation/additional_outputs/trigonometry_list_controller.h @@ -9,8 +9,8 @@ namespace Calculation { class TrigonometryListController : public IllustratedListController { public: - TrigonometryListController() : - IllustratedListController(nullptr), + TrigonometryListController(EditExpressionController * editExpressionController) : + IllustratedListController(nullptr, editExpressionController), m_graphCell(&m_model) {} void setExpression(Poincare::Expression e) override; private: diff --git a/apps/calculation/history_controller.cpp b/apps/calculation/history_controller.cpp index 80f45280d..58413ca8a 100644 --- a/apps/calculation/history_controller.cpp +++ b/apps/calculation/history_controller.cpp @@ -7,11 +7,15 @@ using namespace Poincare; namespace Calculation { -HistoryController::HistoryController(Responder * parentResponder, CalculationStore * calculationStore) : - ViewController(parentResponder), +HistoryController::HistoryController(EditExpressionController * editExpressionController, CalculationStore * calculationStore) : + ViewController(editExpressionController), m_selectableTableView(this, this, this, this), m_calculationHistory{}, - m_calculationStore(calculationStore) + m_calculationStore(calculationStore), + m_complexController(editExpressionController), + m_integerController(editExpressionController), + m_rationalController(editExpressionController), + m_trigonometryController(editExpressionController) { for (int i = 0; i < k_maxNumberOfDisplayedRows; i++) { m_calculationHistory[i].setParentResponder(&m_selectableTableView); diff --git a/apps/calculation/history_controller.h b/apps/calculation/history_controller.h index 5aae9638a..56e9e5094 100644 --- a/apps/calculation/history_controller.h +++ b/apps/calculation/history_controller.h @@ -16,7 +16,7 @@ class App; class HistoryController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate, public HistoryViewCellDataSource { public: - HistoryController(Responder * parentResponder, CalculationStore * calculationStore); + HistoryController(EditExpressionController * editExpressionController, CalculationStore * calculationStore); View * view() override { return &m_selectableTableView; } bool handleEvent(Ion::Events::Event event) override; void viewWillAppear() override;