QTableView: fix Ctrl+End behavior with disabled columns

Ctrl+End moves the visual index to the bottom left index. This does not
work correctly when the item in the bottom left is disabled. It should
be fixed with 7863be3115 but does not due
to a typo.
Fix the typo by using the newly calculated visualColumn instead the
initial column.
There are cases where the algorithm still does not work as expected when
there are more disabled items but fixing them would add a lot of
complexity with no (much) gain.

Fixes: QTBUG-72400
Change-Id: Ie90f6b3e41e00f54e826c2b4e7303e85ac1e4115
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This commit is contained in:
Christian Ehrlicher 2019-04-04 20:16:18 +02:00
parent 5f2afe18cc
commit 37c24c6b1b

View File

@ -1870,7 +1870,7 @@ QModelIndex QTableView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifi
visualColumn = d->nextActiveVisualColumn(visualRow, right, -1, visualColumn = d->nextActiveVisualColumn(visualRow, right, -1,
QTableViewPrivate::SearchDirection::Decreasing); QTableViewPrivate::SearchDirection::Decreasing);
if (modifiers & Qt::ControlModifier) if (modifiers & Qt::ControlModifier)
visualRow = d->nextActiveVisualRow(bottom, current.column(), -1, visualRow = d->nextActiveVisualRow(bottom, visualColumn, -1,
QTableViewPrivate::SearchDirection::Decreasing); QTableViewPrivate::SearchDirection::Decreasing);
break; break;
case MovePageUp: { case MovePageUp: {