diff --git a/apps/apps_container.cpp b/apps/apps_container.cpp index 194dcba10..10b845e3c 100644 --- a/apps/apps_container.cpp +++ b/apps/apps_container.cpp @@ -29,6 +29,10 @@ App * AppsContainer::appAtIndex(int index) { return apps[index]; } +Context * AppsContainer::context() { + return &m_context; +} + ToolBoxController * AppsContainer::toolBoxController() { return &m_toolBoxController; } diff --git a/apps/apps_container.h b/apps/apps_container.h index ecea43d0b..19032eb5b 100644 --- a/apps/apps_container.h +++ b/apps/apps_container.h @@ -19,6 +19,7 @@ public: int numberOfApps(); App * appAtIndex(int index); + Context * context(); ToolBoxController * toolBoxController(); VariableBoxController * variableBoxController(); bool handleEvent(Ion::Events::Event event) override; diff --git a/apps/calculation/app.cpp b/apps/calculation/app.cpp index b5171e08b..984f14a43 100644 --- a/apps/calculation/app.cpp +++ b/apps/calculation/app.cpp @@ -6,7 +6,6 @@ namespace Calculation { App::App(Container * container, Context * context) : ::App(container, &m_editExpressionController, "Calcul", ImageStore::CalculationIcon), ExpressionTextFieldDelegate(), - m_globalContext(context), m_evaluateContext(EvaluateContext(context, &m_calculationStore)), m_calculationStore(CalculationStore()), m_historyController(HistoryController(&m_editExpressionController, &m_calculationStore)), @@ -14,10 +13,6 @@ App::App(Container * container, Context * context) : { } -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 dc933987c..978cbc091 100644 --- a/apps/calculation/app.h +++ b/apps/calculation/app.h @@ -12,10 +12,8 @@ namespace Calculation { class App : public ::App, public ExpressionTextFieldDelegate { public: App(Container * container, Context * context); - Context * globalContext(); Context * evaluateContext() override; private: - Context * m_globalContext; EvaluateContext m_evaluateContext; CalculationStore m_calculationStore; HistoryController m_historyController; diff --git a/apps/graph/app.cpp b/apps/graph/app.cpp index 154437c75..ba07327c7 100644 --- a/apps/graph/app.cpp +++ b/apps/graph/app.cpp @@ -7,7 +7,6 @@ App::App(Container * container, Context * context) : ::App(container, &m_inputViewController, "Graph", ImageStore::GraphIcon), ExpressionTextFieldDelegate(), m_functionStore(FunctionStore()), - m_globalContext(context), m_evaluateContext(EvaluateContext(context)), m_listController(ListController(nullptr, &m_functionStore)), m_listStackViewController(StackViewController(&m_tabViewController, &m_listController)), @@ -23,10 +22,6 @@ InputViewController * App::inputViewController() { return &m_inputViewController; } -Context * App::globalContext() { - return m_globalContext; -} - Context * App::evaluateContext() { return &m_evaluateContext; } diff --git a/apps/graph/app.h b/apps/graph/app.h index b516e9823..308170edf 100644 --- a/apps/graph/app.h +++ b/apps/graph/app.h @@ -15,11 +15,9 @@ class App : public ::App, public ExpressionTextFieldDelegate { public: App(Container * container, Context * context); InputViewController * inputViewController(); - Context * globalContext(); Context * evaluateContext() override; private: FunctionStore m_functionStore; - Context * m_globalContext; EvaluateContext m_evaluateContext; ListController m_listController; StackViewController m_listStackViewController; diff --git a/apps/graph/values/values_controller.cpp b/apps/graph/values/values_controller.cpp index ac56f3c4c..94f069729 100644 --- a/apps/graph/values/values_controller.cpp +++ b/apps/graph/values/values_controller.cpp @@ -1,5 +1,6 @@ #include "values_controller.h" #include "../../constant.h" +#include "../../apps_container.h" #include "../app.h" #include @@ -289,8 +290,8 @@ void ValuesController::editValue(bool overwrite, char initialDigit) { ValueCell * cell = valuesController->abscisseCellAtRow(activeRow); InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); - App * myApp = (App *)valuesController->app(); - Context * globalContext = myApp->globalContext(); + AppsContainer * appsContainer = (AppsContainer *)valuesController->app()->container(); + Context * globalContext = appsContainer->context(); float floatBody = Expression::parse(textBody)->approximate(*globalContext); valuesController->interval()->setElement(activeRow-1, floatBody); valuesController->willDisplayCellAtLocation(cell, activeColumn, activeRow); diff --git a/apps/graph/values/values_parameter_controller.cpp b/apps/graph/values/values_parameter_controller.cpp index 91eeb92ea..994e90a7c 100644 --- a/apps/graph/values/values_parameter_controller.cpp +++ b/apps/graph/values/values_parameter_controller.cpp @@ -1,6 +1,7 @@ #include "values_parameter_controller.h" #include "../app.h" #include "../../constant.h" +#include "../../apps_container.h" #include namespace Graph { @@ -110,8 +111,8 @@ void ValuesParameterController::editInterval(bool overwrite, char initialDigit) TextMenuListCell * cell = (TextMenuListCell *)valuesParameterController->reusableCell(activeCell); InputViewController * myInputViewController = (InputViewController *)sender; const char * textBody = myInputViewController->textBody(); - App * myApp = (App *)valuesParameterController->app(); - Context * globalContext = myApp->globalContext(); + AppsContainer * appsContainer = (AppsContainer *)valuesParameterController->app()->container(); + Context * globalContext = appsContainer->context(); float floatBody = Expression::parse(textBody)->approximate(*globalContext); valuesParameterController->setIntervalParameterAtIndex(activeCell, floatBody); valuesParameterController->willDisplayCellForIndex(cell, activeCell);