From bb22f06250922c301f33c2637977c8a175f287c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 11 Jan 2017 17:37:17 +0100 Subject: [PATCH] [escher] In selectable table view, synthetize code Change-Id: I1547f93c9da635108277b9868bad0750c827db80 --- escher/src/selectable_table_view.cpp | 34 +++++++++++----------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/escher/src/selectable_table_view.cpp b/escher/src/selectable_table_view.cpp index 847e7840f..6887191ab 100644 --- a/escher/src/selectable_table_view.cpp +++ b/escher/src/selectable_table_view.cpp @@ -49,12 +49,13 @@ bool SelectableTableView::selectCellAtLocation(int i, int j) { if (j < 0 || j >= dataSource()->numberOfRows()) { return false; } - if (m_selectedCellX >= 0 && m_selectedCellX < dataSource()->numberOfColumns() && m_selectedCellY >= 0 && m_selectedCellY < dataSource()->numberOfRows()) { TableViewCell * previousCell = cellAtLocation(m_selectedCellX, m_selectedCellY); previousCell->setHighlighted(false); } + int previousX = m_selectedCellX; + int previousY = m_selectedCellY; m_selectedCellX = i; m_selectedCellY = j; if (m_selectedCellY >= 0) { @@ -62,6 +63,9 @@ bool SelectableTableView::selectCellAtLocation(int i, int j) { TableViewCell * cell = cellAtLocation(i, j); cell->setHighlighted(true); } + if (m_delegate) { + m_delegate->tableViewDidChangeSelection(this, previousX, previousY); + } return true; } @@ -70,29 +74,17 @@ TableViewCell * SelectableTableView::selectedCell() { } bool SelectableTableView::handleEvent(Ion::Events::Event event) { - if (event == Ion::Events::Down && selectCellAtLocation(m_selectedCellX, m_selectedCellY+1)) { - if (m_delegate) { - m_delegate->tableViewDidChangeSelection(this, m_selectedCellX, m_selectedCellY - 1); - } - return true; + if (event == Ion::Events::Down) { + return selectCellAtLocation(m_selectedCellX, m_selectedCellY+1); } - if (event == Ion::Events::Up && selectCellAtLocation(m_selectedCellX, m_selectedCellY-1)) { - if (m_delegate) { - m_delegate->tableViewDidChangeSelection(this, m_selectedCellX, m_selectedCellY + 1); - } - return true; + if (event == Ion::Events::Up) { + return selectCellAtLocation(m_selectedCellX, m_selectedCellY-1); } - if (event == Ion::Events::Left && selectCellAtLocation(m_selectedCellX-1, m_selectedCellY)) { - if (m_delegate) { - m_delegate->tableViewDidChangeSelection(this, m_selectedCellX + 1, m_selectedCellY); - } - return true; + if (event == Ion::Events::Left) { + return selectCellAtLocation(m_selectedCellX-1, m_selectedCellY); } - if (event == Ion::Events::Right && selectCellAtLocation(m_selectedCellX+1, m_selectedCellY)) { - if (m_delegate) { - m_delegate->tableViewDidChangeSelection(this, m_selectedCellX - 1, m_selectedCellY); - } - return true; + if (event == Ion::Events::Right) { + return selectCellAtLocation(m_selectedCellX+1, m_selectedCellY); } return false; }