qt5base-lts/tests/auto/widgets/itemviews
Volker Hilsheimer 71aaf831d1 QAbstractItemView: auto-scroll with selection rectangle
Some item views, such as QListView in icon mode, implement a selection
rectangle with which the user can "lasso" items. So far, dragging that
rectangle did not trigger auto scroll, so unless an item near the edge
was selected, the user had to stop the lassoing and scroll manually to
reach more items.

Since QAbtractItemView implements auto scrolling for drag'n'drop, we can
use that mechanism also when the selection rectangle is dragged. This
requires some modifications:

We need to make sure that scrolling the view during a drag-selection
generates mouse move events so that the selection is extended and the
rectangle is updated in subclasses.
And we need to stop using QCursor::pos to get the position of the mouse
pointer, as this makes the auto-scrolling untestable. Instead, record
the mouse position last seen during a mouseMove or dragMoveEvent in
content-coordinates (identical to pressedPosition).

As a drive-by, fix some coding-style issues in nearby code.

Done-with: Zhang Hao <zhanghao@uniontech.com>
Fixes: QTBUG-96124
Change-Id: I426f786e5842ae9f9fb04e9d34dc6d3379a6207f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2021-10-22 09:43:53 +02:00
..
qabstractitemview QAbstractItemView: auto-scroll with selection rectangle 2021-10-22 09:43:53 +02:00
qcolumnview Remove the qmake project files 2021-01-07 15:32:28 +01:00
qdatawidgetmapper Remove the qmake project files 2021-01-07 15:32:28 +01:00
qfileiconprovider Verify that QFileIconProvider returns valid pixmaps 2021-02-23 15:34:05 +01:00
qheaderview Remove the qmake project files 2021-01-07 15:32:28 +01:00
qitemdelegate QAbstractItemView: don't toggle extended selection on Ctrl+Press 2021-06-07 20:23:17 +02:00
qitemeditorfactory Remove the qmake project files 2021-01-07 15:32:28 +01:00
qitemview Remove the qmake project files 2021-01-07 15:32:28 +01:00
qlistview Fix QListView assert when the last row is moved in IconMode 2021-09-01 16:03:15 +00:00
qlistwidget emit layoutAboutToBeChanged timely 2021-07-20 21:27:27 +01:00
qtableview QTableView: fix selection with rows and cells in ExtendedSelection mode 2021-07-12 08:19:16 +00:00
qtablewidget Select a single range of cells in QTableView, away from merged cells 2021-10-12 09:07:54 +02:00
qtreeview Prefer QFAIL("Informative message") over QVERIFY(false) 2021-06-14 15:57:16 +02:00
qtreewidget emit layoutAboutToBeChanged timely 2021-07-20 21:27:27 +01:00
qtreewidgetitemiterator Remove the qmake project files 2021-01-07 15:32:28 +01:00
CMakeLists.txt CMake: Regenerate subdir test projects 2020-07-09 09:38:39 +02:00