diff --git a/apps/graph/values/values_controller.cpp b/apps/graph/values/values_controller.cpp index 97594a3f2..b7b46d9f4 100644 --- a/apps/graph/values/values_controller.cpp +++ b/apps/graph/values/values_controller.cpp @@ -22,14 +22,6 @@ ValuesController::ValuesController(Responder * parentResponder, InputEventHandle } } -bool ValuesController::handleEvent(Ion::Events::Event event) { - if ((event == Ion::Events::OK || event == Ion::Events::EXE) && typeAtLocation(selectedColumn(), selectedRow()) == 1 && isDerivativeColumn(selectedColumn())) { - configureDerivativeFunction(); - return true; - } - return Shared::ValuesController::handleEvent(event); -} - void ValuesController::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) { Shared::ValuesController::willDisplayCellAtLocation(cell, i, j); // The cell is the abscissa title cell: @@ -113,12 +105,6 @@ bool ValuesController::isDerivativeColumn(int i) { return false; } -void ValuesController::configureDerivativeFunction() { - m_derivativeParameterController.setRecord(recordAtColumn(selectedColumn())); - StackViewController * stack = stackController(); - stack->push(&m_derivativeParameterController); -} - int ValuesController::maxNumberOfCells() { return k_maxNumberOfCells; } @@ -138,6 +124,11 @@ EvenOddBufferTextCell * ValuesController::floatCells(int j) { } ViewController * ValuesController::functionParameterController() { + bool isDerivative = isDerivativeColumn(selectedColumn()); + if (isDerivative) { + m_derivativeParameterController.setRecord(recordAtColumn(selectedColumn())); + return &m_derivativeParameterController; + } m_functionParameterController.setRecord(recordAtColumn(selectedColumn())); return &m_functionParameterController; } diff --git a/apps/graph/values/values_controller.h b/apps/graph/values/values_controller.h index 8521f8069..c14f30b2d 100644 --- a/apps/graph/values/values_controller.h +++ b/apps/graph/values/values_controller.h @@ -13,7 +13,6 @@ namespace Graph { class ValuesController : public Shared::ValuesController { public: ValuesController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, Shared::Interval * interval, ButtonRowController * header); - bool handleEvent(Ion::Events::Event event) override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; I18n::Message emptyMessage() override; Shared::IntervalParameterController * intervalParameterController() override; @@ -23,7 +22,6 @@ private: constexpr static int k_maxNumberOfFunctions = 5; Ion::Storage::Record recordAtColumn(int i) override; bool isDerivativeColumn(int i); - void configureDerivativeFunction(); int maxNumberOfCells() override; int maxNumberOfFunctions() override; double evaluationOfAbscissaAtColumn(double abscissa, int columnIndex) override;