[apps/shared] In list controller, factorize handle event

Change-Id: I0e00f1cf3b217782ec6f858d60954733e2be5276
This commit is contained in:
Émilie Feral
2017-02-17 14:37:54 +01:00
parent 828e4795b9
commit cfd518283f
6 changed files with 94 additions and 123 deletions

View File

@@ -140,6 +140,42 @@ bool ListController::handleEvent(Ion::Events::Event event) {
app()->setFirstResponder(tabController());
return true;
}
if (event == Ion::Events::OK) {
switch (m_selectableTableView.selectedColumn()) {
case 0:
{
if (m_functionStore->numberOfFunctions() < m_functionStore->maxNumberOfFunctions() &&
m_selectableTableView.selectedRow() == numberOfRows() - 1) {
return true;
}
configureFunction(m_functionStore->functionAtIndex(functionIndexForRow(m_selectableTableView.selectedRow())));
return true;
}
case 1:
{
if (m_functionStore->numberOfFunctions() < m_functionStore->maxNumberOfFunctions() &&
m_selectableTableView.selectedRow() == numberOfRows() - 1) {
addEmptyFunction();
return true;
}
Shared::Function * function = m_functionStore->functionAtIndex(functionIndexForRow(m_selectableTableView.selectedRow()));
editExpression(function, Ion::Events::OK);
return true;
}
default:
{
return false;
}
}
}
if ((event.hasText() || event == Ion::Events::XNT)
&& m_selectableTableView.selectedColumn() == 1
&& (m_selectableTableView.selectedRow() != numberOfRows() - 1
|| m_functionStore->numberOfFunctions() == m_functionStore->maxNumberOfFunctions())) {
Shared::Function * function = m_functionStore->functionAtIndex(functionIndexForRow(m_selectableTableView.selectedRow()));
editExpression(function, event);
return true;
}
return false;
}
@@ -161,4 +197,13 @@ Responder * ListController::tabController() const{
return (parentResponder()->parentResponder()->parentResponder());
}
int ListController::functionIndexForRow(int j) {
return j;
}
void ListController::addEmptyFunction() {
m_functionStore->addEmptyFunction();
m_selectableTableView.reloadData();
}
}