[escher] In textField, record edited data when changing selection

Change-Id: I74e1cac2188986244f79e7c5ad0eb1d300510475
This commit is contained in:
Émilie Feral
2017-04-21 17:36:41 +02:00
parent 6952c8a799
commit f3eb2b80df
21 changed files with 102 additions and 60 deletions

View File

@@ -112,7 +112,13 @@ void FloatParameterController::willDisplayCellForIndex(HighlightCell * cell, int
myCell->setAccessoryText(buffer);
}
bool FloatParameterController::textFieldDidFinishEditing(TextField * textField, const char * text) {
bool FloatParameterController::textFieldShouldFinishEditing(TextField * textField, Ion::Events::Event event) {
return (event == Ion::Events::Down && selectableTableView()->selectedRow() < numberOfRows()-1)
|| (event == Ion::Events::Up && selectableTableView()->selectedRow() > 0)
|| TextFieldDelegate::textFieldShouldFinishEditing(textField, event);
}
bool FloatParameterController::textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) {
AppsContainer * appsContainer = ((TextFieldDelegateApp *)app())->container();
Context * globalContext = appsContainer->globalContext();
float floatBody = Expression::parse(text)->approximate(*globalContext);
@@ -126,7 +132,11 @@ bool FloatParameterController::textFieldDidFinishEditing(TextField * textField,
willDisplayCellForIndex(selectableTableView()->cellAtLocation(selectableTableView()->selectedColumn(),
selectableTableView()->selectedRow()), activeCell());
selectableTableView()->reloadData();
selectableTableView()->selectCellAtLocation(selectableTableView()->selectedColumn(), selectableTableView()->selectedRow()+1);
if (event == Ion::Events::EXE || event == Ion::Events::OK) {
selectableTableView()->selectCellAtLocation(selectableTableView()->selectedColumn(), selectableTableView()->selectedRow()+1);
} else {
selectableTableView()->handleEvent(event);
}
return true;
}