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);
 }
 
 
--- a/src/main.h	Fri Nov 17 04:12:38 2017 +0200
+++ b/src/main.h	Tue Nov 21 11:27:15 2017 +0200
@@ -193,6 +193,7 @@
 
     void selectedPersonChanged(const QModelIndex &, const QModelIndex &);
 
+    void selectRowDelta(const int delta);
     void selectRowPrev();
     void selectRowNext();