mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
[apps/shared] In list controller, factorize handle event
Change-Id: I0e00f1cf3b217782ec6f858d60954733e2be5276
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user