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);