mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-22 23:30:37 +01:00
[apps/graph][apps/sequence] In values controller, memoize the number of
columns to improve performance Change-Id: Ie3c545d0198a2f23575bd22fdbf56e9c6b8ff2b8
This commit is contained in:
@@ -8,12 +8,14 @@ using namespace Poincare;
|
||||
|
||||
namespace Shared {
|
||||
|
||||
ValuesController::ValuesController(Responder * parentResponder, ButtonRowController * header, I18n::Message parameterTitle, IntervalParameterController * intervalParameterController, Interval * interval) :
|
||||
ValuesController::ValuesController(Responder * parentResponder, ButtonRowController * header, I18n::Message parameterTitle, IntervalParameterController * intervalParameterController, Interval * interval, uint32_t * modelVersion) :
|
||||
EditableCellTableViewController(parentResponder),
|
||||
ButtonRowDelegate(header, nullptr),
|
||||
m_interval(interval),
|
||||
m_numberOfColumns(0),
|
||||
m_abscissaTitleCell(nullptr),
|
||||
m_abscissaCells{},
|
||||
m_modelVersion(modelVersion),
|
||||
m_abscissaParameterController(this, intervalParameterController, parameterTitle),
|
||||
m_setIntervalButton(this, I18n::Message::IntervalSet, Invocation([](void * context, void * sender) {
|
||||
ValuesController * valuesController = (ValuesController *) context;
|
||||
@@ -27,6 +29,10 @@ const char * ValuesController::title() {
|
||||
return I18n::translate(I18n::Message::ValuesTab);
|
||||
}
|
||||
|
||||
int ValuesController::numberOfColumns() {
|
||||
return m_numberOfColumns;
|
||||
}
|
||||
|
||||
Interval * ValuesController::interval() {
|
||||
return m_interval;
|
||||
}
|
||||
@@ -228,6 +234,11 @@ Responder * ValuesController::defaultController() {
|
||||
}
|
||||
|
||||
void ValuesController::viewWillAppear() {
|
||||
uint32_t newModelVersion = functionStore()->storeChecksum();
|
||||
if (*m_modelVersion != newModelVersion) {
|
||||
*m_modelVersion = newModelVersion;
|
||||
updateNumberOfColumns();
|
||||
}
|
||||
EditableCellTableViewController::viewWillAppear();
|
||||
header()->setSelectedButton(-1);
|
||||
}
|
||||
@@ -313,5 +324,9 @@ void ValuesController::unloadView(View * view) {
|
||||
EditableCellTableViewController::unloadView(view);
|
||||
}
|
||||
|
||||
void ValuesController::updateNumberOfColumns() {
|
||||
m_numberOfColumns = 1+functionStore()->numberOfActiveFunctions();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user