Mercurial > hg > syntilista
changeset 209:6f404158ce8c
Get rid of tiny bit of code duplication.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 21 Nov 2017 11:27:15 +0200 |
parents | e6a2658ae096 |
children | 02aae61e807e |
files | src/main.cpp src/main.h |
diffstat | 2 files changed, 21 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main.cpp Fri Nov 17 04:12:38 2017 +0200 +++ b/src/main.cpp Tue Nov 21 11:27:15 2017 +0200 @@ -949,27 +949,34 @@ } -void SyntilistaMainWindow::selectRowPrev() +void SyntilistaMainWindow::selectRowDelta(const int delta) { QItemSelectionModel *sel = ui->tableview_People->selectionModel(); - int row = sel->currentIndex().row() - 1; - if (row < 0) - row = 0; + int prow = sel->currentIndex().row(); + int nrow = prow + delta; + if (nrow < 0) + nrow = 0; + else + if (nrow >= model_People->rowCount()) + nrow = model_People->rowCount() - 1; - sel->setCurrentIndex(model_People->index(row, 0), - QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Rows); + if (nrow != prow) + { + sel->setCurrentIndex(model_People->index(nrow, 0), + QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Rows); + } +} + + +void SyntilistaMainWindow::selectRowPrev() +{ + selectRowDelta(-1); } void SyntilistaMainWindow::selectRowNext() { - QItemSelectionModel *sel = ui->tableview_People->selectionModel(); - int row = sel->currentIndex().row() + 1; - if (row >= model_People->rowCount()) - row = model_People->rowCount() - 1; - - sel->setCurrentIndex(model_People->index(row, 0), - QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Rows); + selectRowDelta(1); }