diff --git a/src/ExtendedTableWidget.h b/src/ExtendedTableWidget.h index 73f3893c..5be2668a 100644 --- a/src/ExtendedTableWidget.h +++ b/src/ExtendedTableWidget.h @@ -19,6 +19,7 @@ public: public: QSet selectedCols(); + int numVisibleRows(); public slots: void reloadSettings(); @@ -30,7 +31,6 @@ signals: private: void copy(); void paste(); - int numVisibleRows(); typedef QList QByteArrayList; QList m_buffer; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 657f2ca0..d2c7929e 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -634,14 +634,14 @@ void MainWindow::selectTableLine(int lineToSelect) // Select it ui->dataTable->clearSelection(); ui->dataTable->selectRow(lineToSelect); - ui->dataTable->scrollTo(ui->dataTable->currentIndex()); + ui->dataTable->scrollTo(ui->dataTable->currentIndex(), QAbstractItemView::PositionAtTop); QApplication::restoreOverrideCursor(); } void MainWindow::navigatePrevious() { int curRow = ui->dataTable->currentIndex().row(); - curRow -= 100; + curRow -= ui->dataTable->numVisibleRows() - 1; if(curRow < 0) curRow = 0; selectTableLine(curRow); @@ -651,7 +651,7 @@ void MainWindow::navigatePrevious() void MainWindow::navigateNext() { int curRow = ui->dataTable->currentIndex().row(); - curRow += 100; + curRow += ui->dataTable->numVisibleRows() - 1; if(curRow >= m_browseTableModel->totalRowCount()) curRow = m_browseTableModel->totalRowCount() - 1; selectTableLine(curRow);