[escher] In selectable table view, avoid reloading all table cells when

not required

Change-Id: I31bdb1567eed6ebaa839672df61472994ab89b05
This commit is contained in:
Émilie Feral
2017-01-31 17:45:13 +01:00
parent 49683e25ae
commit 8b5e2be1b7
11 changed files with 32 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ ValuesController::ValuesController(Responder * parentResponder, FunctionStore *
m_derivativeParameterController(DerivativeParameterController(this)),
m_setIntervalButton(Button(this, "Regler l'intervalle",Invocation([](void * context, void * sender) {
ValuesController * valuesController = (ValuesController *) context;
valuesController->hasChangedTableData();
StackViewController * stack = ((StackViewController *)valuesController->stackController());
stack->push(valuesController->intervalParameterController());
}, this), KDText::FontSize::Small))
@@ -68,16 +69,20 @@ bool ValuesController::handleEvent(Ion::Events::Event event) {
}
if (event == Ion::Events::OK) {
if (activeRow() == -1) {
m_selectableTableView.dataHasChanged(true);
return headerViewController()->handleEvent(event);
}
if (activeRow() == 0) {
if (activeColumn() == 0) {
m_selectableTableView.dataHasChanged(true);
configureAbscissa();
return true;
}
if (isDerivativeColumn(activeColumn())) {
m_selectableTableView.dataHasChanged(true);
configureDerivativeFunction();
} else {
m_selectableTableView.dataHasChanged(true);
configureFunction();
}
return true;
@@ -272,6 +277,10 @@ Responder * ValuesController::defaultController() {
return tabController();
}
void ValuesController::hasChangedTableData() {
m_selectableTableView.dataHasChanged(true);
}
int ValuesController::activeRow() {
return m_selectableTableView.selectedRow();
}