[apps/sequence] Factorize sequence row index offsets

Change-Id: Id6fa632521858c48fe7d3daf35fd846bf24a05eb
This commit is contained in:
Hugo Saint-Vignes
2020-11-24 11:43:14 +01:00
committed by EmilieNumworks
parent 387d3c9aa1
commit cfc37f1bac
4 changed files with 12 additions and 26 deletions

View File

@@ -66,7 +66,7 @@ protected:
virtual bool selectSubMenu(int selectedRow);
virtual bool returnToPreviousMenu();
virtual bool selectLeaf(int selectedRow) = 0;
virtual int stackRowIndex(int selectedRow) { return selectedRow; }
virtual int stackRowOffset() const { return 0; }
InputEventHandler * sender() { return m_sender; }
virtual HighlightCell * leafCellAtIndex(int index) = 0;
virtual HighlightCell * nodeCellAtIndex(int index) = 0;

View File

@@ -157,7 +157,7 @@ bool NestedMenuController::handleEventForRow(Ion::Events::Event event, int rowIn
}
bool NestedMenuController::selectSubMenu(int selectedRow) {
m_stack.push(stackRowIndex(selectedRow), m_selectableTableView.contentOffset().y());
m_stack.push(selectedRow, m_selectableTableView.contentOffset().y());
m_listController.setFirstSelectedRow(0);
Container::activeApp()->setFirstResponder(&m_listController);
return true;
@@ -166,7 +166,7 @@ bool NestedMenuController::selectSubMenu(int selectedRow) {
bool NestedMenuController::returnToPreviousMenu() {
assert(m_stack.depth() > 0);
NestedMenuController::Stack::State state = m_stack.pop();
m_listController.setFirstSelectedRow(state.selectedRow());
m_listController.setFirstSelectedRow(state.selectedRow() + stackRowOffset());
KDPoint scroll = m_selectableTableView.contentOffset();
m_selectableTableView.setContentOffset(KDPoint(scroll.x(), state.verticalScroll()));
Container::activeApp()->setFirstResponder(&m_listController);