From f5272cb0cffd4a0dc3c425dd2b7a2d90dd03c6cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 3 Nov 2016 17:20:01 +0100 Subject: [PATCH] [apps/calculation] Evaluate calculations in the context including ANS Change-Id: I9442885551d928d2c1a32bae1324eb6c45af3c94 --- apps/calculation/app.cpp | 5 +++++ apps/calculation/app.h | 3 +++ apps/calculation/edit_expression_controller.cpp | 2 +- apps/calculation/history_controller.cpp | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/calculation/app.cpp b/apps/calculation/app.cpp index 25ccffc53..d13a71adc 100644 --- a/apps/calculation/app.cpp +++ b/apps/calculation/app.cpp @@ -6,6 +6,7 @@ namespace Calculation { App::App(Context * context) : ::App(&m_editExpressionController, "Calcul", ImageStore::CalculationIcon), m_globalContext(context), + m_evaluateContext(EvaluateContext(context, &m_calculationStore)), m_calculationStore(CalculationStore()), m_historyController(HistoryController(&m_editExpressionController, &m_calculationStore)), m_editExpressionController(EditExpressionController(&m_modalViewController, &m_historyController, &m_calculationStore, this)) @@ -16,4 +17,8 @@ Context * App::globalContext() { return m_globalContext; } +Context * App::evaluateContext() { + return &m_evaluateContext; +} + } diff --git a/apps/calculation/app.h b/apps/calculation/app.h index 863fcfd8c..e4badd69c 100644 --- a/apps/calculation/app.h +++ b/apps/calculation/app.h @@ -2,6 +2,7 @@ #define CALCULATION_APP_H #include "edit_expression_controller.h" +#include "evaluate_context.h" #include "history_controller.h" #include "../expression_text_field_delegate.h" #include @@ -12,8 +13,10 @@ class App : public ::App, public ExpressionTextFieldDelegate { public: App(Context * context); Context * globalContext(); + Context * evaluateContext(); private: Context * m_globalContext; + EvaluateContext m_evaluateContext; CalculationStore m_calculationStore; HistoryController m_historyController; EditExpressionController m_editExpressionController; diff --git a/apps/calculation/edit_expression_controller.cpp b/apps/calculation/edit_expression_controller.cpp index 45864ec15..1f6a6de0c 100644 --- a/apps/calculation/edit_expression_controller.cpp +++ b/apps/calculation/edit_expression_controller.cpp @@ -74,7 +74,7 @@ bool EditExpressionController::handleEvent(Ion::Events::Event event) { { Calculation calculation = Calculation(); App * calculationApp = (App *)app(); - calculation.setContent(textBody(), calculationApp->globalContext()); + calculation.setContent(textBody(), calculationApp->evaluateContext()); m_calculationStore->push(&calculation); m_historyController->reload(); m_contentView.mainView()->scrollToCell(0, m_historyController->numberOfRows()-1); diff --git a/apps/calculation/history_controller.cpp b/apps/calculation/history_controller.cpp index 66051d5f3..190155d5c 100644 --- a/apps/calculation/history_controller.cpp +++ b/apps/calculation/history_controller.cpp @@ -69,7 +69,7 @@ bool HistoryController::handleEvent(Ion::Events::Event event) { char buffer[Constant::FloatBufferSizeInScientificMode]; Float(calculation->evaluation()).convertFloatToText(buffer, Constant::FloatBufferSizeInScientificMode, Constant::NumberOfDigitsInMantissaInScientificMode); App * calculationApp = (App *)app(); - newCalculation.setContent(buffer, calculationApp->globalContext()); + newCalculation.setContent(buffer, calculationApp->evaluateContext()); } m_selectableTableView.deselectTable(); m_calculationStore->push(&newCalculation);