mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps] Use viewWillAppear to reload view after preference change
Change-Id: I4fba6bd6d4dee03e86ac5087dbc20ef4d7dd032b
This commit is contained in:
@@ -11,15 +11,15 @@ App::App(Container * container, Context * context) :
|
||||
m_functionStore(FunctionStore()),
|
||||
m_xContext(VariableContext('x', context)),
|
||||
m_listController(ListController(&m_listHeader, &m_functionStore, &m_listHeader)),
|
||||
m_listHeader(HeaderViewController(nullptr, &m_listController, &m_listController)),
|
||||
m_listHeader(HeaderViewController(&m_listStackViewController, &m_listController, &m_listController)),
|
||||
m_listStackViewController(StackViewController(&m_tabViewController, &m_listHeader)),
|
||||
m_graphController(GraphController(&m_graphAlternateEmptyViewController, &m_functionStore, &m_graphHeader)),
|
||||
m_graphAlternateEmptyViewController(AlternateEmptyViewController(&m_graphHeader, &m_graphController, &m_graphController)),
|
||||
m_graphHeader(HeaderViewController(nullptr, &m_graphAlternateEmptyViewController, &m_graphController)),
|
||||
m_graphHeader(HeaderViewController(&m_graphStackViewController, &m_graphAlternateEmptyViewController, &m_graphController)),
|
||||
m_graphStackViewController(StackViewController(&m_tabViewController, &m_graphHeader)),
|
||||
m_valuesController(&m_valuesAlternateEmptyViewController, &m_functionStore, &m_valuesHeader),
|
||||
m_valuesAlternateEmptyViewController(AlternateEmptyViewController(&m_valuesHeader, &m_valuesController, &m_valuesController)),
|
||||
m_valuesHeader(HeaderViewController(nullptr, &m_valuesAlternateEmptyViewController, &m_valuesController)),
|
||||
m_valuesHeader(HeaderViewController(&m_valuesStackViewController, &m_valuesAlternateEmptyViewController, &m_valuesController)),
|
||||
m_valuesStackViewController(StackViewController(&m_tabViewController, &m_valuesHeader)),
|
||||
m_tabViewController(&m_inputViewController, &m_listStackViewController, &m_graphStackViewController, &m_valuesStackViewController),
|
||||
m_inputViewController(&m_modalViewController, &m_tabViewController, this)
|
||||
|
||||
@@ -122,6 +122,9 @@ void GraphController::reloadBannerView() {
|
||||
legend = "00(x) = ";
|
||||
legendLength = strlen(legend);
|
||||
strlcpy(buffer, legend, legendLength+1);
|
||||
if (m_functionStore->numberOfActiveFunctions() == 0) {
|
||||
return;
|
||||
}
|
||||
Function * f = m_functionStore->activeFunctionAtIndex(m_indexFunctionSelectedByCursor);
|
||||
buffer[1] = f->name()[0];
|
||||
Complex::convertFloatToText(m_cursor.y(), buffer+legendLength, Complex::bufferSizeForFloatsWithPrecision(Constant::LargeNumberOfSignificantDigits), Constant::LargeNumberOfSignificantDigits, graphApp->container()->preferences()->displayMode());
|
||||
|
||||
@@ -27,8 +27,7 @@ ValuesController::ValuesController(Responder * parentResponder, FunctionStore *
|
||||
ValuesController * valuesController = (ValuesController *) context;
|
||||
StackViewController * stack = ((StackViewController *)valuesController->stackController());
|
||||
stack->push(valuesController->intervalParameterController());
|
||||
}, this), KDText::FontSize::Small)),
|
||||
m_displayModeVersion(Expression::FloatDisplayMode::Auto)
|
||||
}, this), KDText::FontSize::Small))
|
||||
{
|
||||
m_interval.setStart(0);
|
||||
m_interval.setEnd(10);
|
||||
@@ -39,16 +38,6 @@ const char * ValuesController::title() const {
|
||||
return "Valeurs";
|
||||
}
|
||||
|
||||
View * ValuesController::view() {
|
||||
App * graphApp = (App *)app();
|
||||
Expression::FloatDisplayMode FloatDisplayMode = graphApp->container()->preferences()->displayMode();
|
||||
if (FloatDisplayMode != m_displayModeVersion) {
|
||||
m_selectableTableView.reloadData();
|
||||
m_displayModeVersion = FloatDisplayMode;
|
||||
}
|
||||
return EditableCellTableViewController::view();
|
||||
}
|
||||
|
||||
Interval * ValuesController::interval() {
|
||||
return &m_interval;
|
||||
}
|
||||
@@ -297,6 +286,10 @@ int ValuesController::activeColumn() {
|
||||
return m_selectableTableView.selectedColumn();
|
||||
}
|
||||
|
||||
void ValuesController::viewWillAppear() {
|
||||
m_selectableTableView.reloadData();
|
||||
}
|
||||
|
||||
Function * ValuesController::functionAtColumn(int i) {
|
||||
assert(i > 0);
|
||||
int index = 1;
|
||||
|
||||
@@ -17,7 +17,6 @@ class ValuesController : public Shared::EditableCellTableViewController, public
|
||||
public:
|
||||
ValuesController(Responder * parentResponder, FunctionStore * functionStore, HeaderViewController * header);
|
||||
const char * title() const override;
|
||||
View * view() override;
|
||||
Interval * interval();
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
void didBecomeFirstResponder() override;
|
||||
@@ -38,6 +37,7 @@ public:
|
||||
void selectCellAtLocation(int i, int j);
|
||||
int activeRow();
|
||||
int activeColumn();
|
||||
void viewWillAppear() override;
|
||||
static constexpr KDCoordinate k_topMargin = 10;
|
||||
static constexpr KDCoordinate k_bottomMargin = 5;
|
||||
static constexpr KDCoordinate k_leftMargin = 1;
|
||||
@@ -72,7 +72,6 @@ private:
|
||||
FunctionParameterController m_functionParameterController;
|
||||
DerivativeParameterController m_derivativeParameterController;
|
||||
Button m_setIntervalButton;
|
||||
Poincare::Expression::FloatDisplayMode m_displayModeVersion;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -13,10 +13,10 @@ App::App(Container * container) :
|
||||
m_calculationHeader(HeaderViewController(&m_tabViewController, &m_calculationAlternateEmptyViewController, &m_calculationController)),
|
||||
m_graphController(GraphController(&m_graphAlternateEmptyViewController, &m_graphHeader, &m_store)),
|
||||
m_graphAlternateEmptyViewController(AlternateEmptyViewController(&m_graphHeader, &m_graphController, &m_graphController)),
|
||||
m_graphHeader(HeaderViewController(nullptr, &m_graphAlternateEmptyViewController, &m_graphController)),
|
||||
m_graphHeader(HeaderViewController(&m_graphStackViewController, &m_graphAlternateEmptyViewController, &m_graphController)),
|
||||
m_graphStackViewController(StackViewController(&m_tabViewController, &m_graphHeader)),
|
||||
m_storeController(StoreController(&m_storeHeader, &m_store, &m_storeHeader)),
|
||||
m_storeHeader(HeaderViewController(nullptr, &m_storeController, &m_storeController)),
|
||||
m_storeHeader(HeaderViewController(&m_storeStackViewController, &m_storeController, &m_storeController)),
|
||||
m_storeStackViewController(StackViewController(&m_tabViewController, &m_storeHeader)),
|
||||
m_tabViewController(&m_modalViewController, &m_storeStackViewController, &m_graphStackViewController, &m_calculationHeader)
|
||||
{
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "interactive_curve_view_controller.h"
|
||||
#include "text_field_delegate_app.h"
|
||||
#include "../apps_container.h"
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
|
||||
using namespace Poincare;
|
||||
|
||||
@@ -29,8 +28,7 @@ InteractiveCurveViewController::InteractiveCurveViewController(Responder * paren
|
||||
InteractiveCurveViewController * graphController = (InteractiveCurveViewController *) context;
|
||||
StackViewController * stack = graphController->stackController();
|
||||
stack->push(graphController->initialisationParameterController());
|
||||
}, this), KDText::FontSize::Small),
|
||||
m_displayModeVersion(Expression::FloatDisplayMode::Auto)
|
||||
}, this), KDText::FontSize::Small)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -39,13 +37,6 @@ const char * InteractiveCurveViewController::title() const {
|
||||
}
|
||||
|
||||
View * InteractiveCurveViewController::view() {
|
||||
AppsContainer * myContainer = ((TextFieldDelegateApp *)app())->container();
|
||||
Expression::FloatDisplayMode FloatDisplayMode = myContainer->preferences()->displayMode();
|
||||
if (FloatDisplayMode != m_displayModeVersion) {
|
||||
reloadBannerView();
|
||||
curveView()->reload();
|
||||
m_displayModeVersion = FloatDisplayMode;
|
||||
}
|
||||
return curveView();
|
||||
}
|
||||
|
||||
@@ -149,6 +140,11 @@ Responder * InteractiveCurveViewController::defaultController() {
|
||||
return tabController();
|
||||
}
|
||||
|
||||
void InteractiveCurveViewController::viewWillAppear() {
|
||||
reloadBannerView();
|
||||
curveView()->reload();
|
||||
}
|
||||
|
||||
Responder * InteractiveCurveViewController::tabController() const{
|
||||
return (parentResponder()->parentResponder()->parentResponder()->parentResponder());
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ public:
|
||||
Button * buttonAtIndex(int index) override;
|
||||
|
||||
Responder * defaultController() override;
|
||||
|
||||
void viewWillAppear() override;
|
||||
protected:
|
||||
constexpr static float k_numberOfCursorStepsInGradUnit = 5.0f;
|
||||
virtual BannerView * bannerView() = 0;
|
||||
@@ -55,7 +57,6 @@ private:
|
||||
Button m_rangeButton;
|
||||
Button m_zoomButton;
|
||||
Button m_defaultInitialisationButton;
|
||||
Poincare::Expression::FloatDisplayMode m_displayModeVersion;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -16,10 +16,10 @@ App::App(Container * container) :
|
||||
m_boxHeader(HeaderViewController(&m_tabViewController, &m_boxAlternateEmptyViewController, &m_boxController)),
|
||||
m_histogramController(HistogramController(&m_histogramAlternateEmptyViewController, &m_histogramHeader, &m_store)),
|
||||
m_histogramAlternateEmptyViewController(AlternateEmptyViewController(&m_histogramHeader, &m_histogramController, &m_histogramController)),
|
||||
m_histogramHeader(HeaderViewController(nullptr, &m_histogramAlternateEmptyViewController, &m_histogramController)),
|
||||
m_histogramHeader(HeaderViewController(&m_histogramStackViewController, &m_histogramAlternateEmptyViewController, &m_histogramController)),
|
||||
m_histogramStackViewController(StackViewController(&m_tabViewController, &m_histogramHeader)),
|
||||
m_storeController(&m_storeHeader, &m_store, &m_storeHeader),
|
||||
m_storeHeader(HeaderViewController(nullptr, &m_storeController, &m_storeController)),
|
||||
m_storeHeader(HeaderViewController(&m_storeStackViewController, &m_storeController, &m_storeController)),
|
||||
m_storeStackViewController(StackViewController(&m_tabViewController, &m_storeHeader)),
|
||||
m_tabViewController(&m_modalViewController, &m_storeStackViewController, &m_histogramStackViewController, &m_boxHeader, &m_calculationHeader)
|
||||
{
|
||||
|
||||
@@ -12,8 +12,7 @@ BoxController::BoxController(Responder * parentResponder, HeaderViewController *
|
||||
HeaderViewDelegate(headerViewController),
|
||||
m_boxBannerView(BoxBannerView()),
|
||||
m_view(BoxView(store, &m_boxBannerView)),
|
||||
m_store(store),
|
||||
m_displayModeVersion(Expression::FloatDisplayMode::Auto)
|
||||
m_store(store)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -22,13 +21,6 @@ const char * BoxController::title() const {
|
||||
}
|
||||
|
||||
View * BoxController::view() {
|
||||
AppsContainer * myContainer = ((App *)app())->container();
|
||||
Expression::FloatDisplayMode FloatDisplayMode = myContainer->preferences()->displayMode();
|
||||
if (FloatDisplayMode != m_displayModeVersion) {
|
||||
reloadBannerView();
|
||||
m_view.reload();
|
||||
m_displayModeVersion = FloatDisplayMode;
|
||||
}
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
@@ -85,4 +77,9 @@ void BoxController::reloadBannerView() {
|
||||
m_boxBannerView.setLegendAtIndex(buffer, 1);
|
||||
}
|
||||
|
||||
void BoxController::viewWillAppear() {
|
||||
reloadBannerView();
|
||||
m_view.reload();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,13 +18,13 @@ public:
|
||||
bool isEmpty() const override;
|
||||
const char * emptyMessage() override;
|
||||
Responder * defaultController() override;
|
||||
void viewWillAppear() override;
|
||||
private:
|
||||
Responder * tabController() const;
|
||||
void reloadBannerView();
|
||||
BoxBannerView m_boxBannerView;
|
||||
BoxView m_view;
|
||||
Store * m_store;
|
||||
Poincare::Expression::FloatDisplayMode m_displayModeVersion;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,7 @@ HistogramController::HistogramController(Responder * parentResponder, HeaderView
|
||||
}, this))),
|
||||
m_store(store),
|
||||
m_cursor(CurveViewCursor()),
|
||||
m_histogramParameterController(nullptr, store),
|
||||
m_displayModeVersion(Expression::FloatDisplayMode::Auto)
|
||||
m_histogramParameterController(nullptr, store)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -32,13 +31,6 @@ const char * HistogramController::title() const {
|
||||
}
|
||||
|
||||
View * HistogramController::view() {
|
||||
AppsContainer * container = ((App *)app())->container();
|
||||
Expression::FloatDisplayMode FloatDisplayMode = container->preferences()->displayMode();
|
||||
if (FloatDisplayMode != m_displayModeVersion) {
|
||||
reloadBannerView();
|
||||
m_view.reload();
|
||||
m_displayModeVersion = FloatDisplayMode;
|
||||
}
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
@@ -131,6 +123,11 @@ Responder * HistogramController::defaultController() {
|
||||
return tabController();
|
||||
}
|
||||
|
||||
void HistogramController::viewWillAppear() {
|
||||
reloadBannerView();
|
||||
m_view.reload();
|
||||
}
|
||||
|
||||
Responder * HistogramController::tabController() const {
|
||||
return (parentResponder()->parentResponder()->parentResponder()->parentResponder());
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ public:
|
||||
bool isEmpty() const override;
|
||||
const char * emptyMessage() override;
|
||||
Responder * defaultController() override;
|
||||
void viewWillAppear() override;
|
||||
private:
|
||||
constexpr static int k_maxNumberOfBarsPerWindow = 280;
|
||||
constexpr static int k_maxNumberOfCharacters = 12;
|
||||
@@ -47,7 +48,6 @@ private:
|
||||
uint32_t m_rangeVersion;
|
||||
int m_selectedBarIndex;
|
||||
HistogramParameterController m_histogramParameterController;
|
||||
Poincare::Expression::FloatDisplayMode m_displayModeVersion;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -222,6 +222,10 @@ void VariableBoxController::ContentViewController::setTextFieldCaller(TextField
|
||||
m_textFieldCaller = textField;
|
||||
}
|
||||
|
||||
void VariableBoxController::ContentViewController::reloadData() {
|
||||
m_selectableTableView.reloadData();
|
||||
}
|
||||
|
||||
VariableBoxController::VariableBoxController(Context * context) :
|
||||
StackViewController(nullptr, &m_contentViewController, true, KDColorWhite, Palette::PurpleBright, Palette::PurpleDark),
|
||||
m_contentViewController(ContentViewController(this, context))
|
||||
@@ -236,3 +240,7 @@ void VariableBoxController::didBecomeFirstResponder() {
|
||||
void VariableBoxController::setTextFieldCaller(TextField * textField) {
|
||||
m_contentViewController.setTextFieldCaller(textField);
|
||||
}
|
||||
|
||||
void VariableBoxController::viewWillAppear() {
|
||||
m_contentViewController.reloadData();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ public:
|
||||
VariableBoxController(Poincare::Context * context);
|
||||
void didBecomeFirstResponder() override;
|
||||
void setTextFieldCaller(TextField * textField);
|
||||
void viewWillAppear() override;
|
||||
private:
|
||||
class ContentViewController : public ViewController, public ListViewDataSource {
|
||||
public:
|
||||
@@ -27,6 +28,7 @@ private:
|
||||
int indexFromCumulatedHeight(KDCoordinate offsetY) override;
|
||||
int typeAtLocation(int i, int j) override;
|
||||
void setTextFieldCaller(TextField * textField);
|
||||
void reloadData();
|
||||
private:
|
||||
enum class Page {
|
||||
RootMenu,
|
||||
|
||||
Reference in New Issue
Block a user