qt5base-lts/tests/auto/widgets/itemviews
Volker Hilsheimer 8c18a245b0 QAbstractScrollArea: Don't include size of invisible scrollbars
Amend 3e59a88e89, which incorrectly used
isHidden() to test whether the scrollbar is visible or not.
QWidget::isHidden() is only true for child widgets that are explicitly
hidden (or created for visible parents, which the scrollbars are not).
Since the scrollbars are children of a container that is hidden and
shown, isHidden always returns false.

Instead, use QWidget::isVisibleTo, passing the scroll area, as that
tells us if the scrollbar's visibility is relevant for the layout of the
scroll area.

Add a test case for QAbstractScrollArea, verifying that the scrollbar's
size is correctly taken into account when calculating the size hint.
This change revealed an instability in the tests introduced in the
earlier commit: the layout process is asynchronous, requiring event
processing to update the visibility of the scrollbars. Add a call to
processEvents before storing the reference size hint. Also, explicitly
set a style that doesn't use transient scrollbars as otherwise we cannot
control when the scrollbars are shown.

The chagne also revealed an inaccuracy in the QListView test, which
only passed because the width of the vertical scrollbar was included.
We cannot use font metrics results to compare expected width, as the
item delegate's text rendering uses text layouts.

Task-number: QTBUG-69120
Fixes: QTBUG-109326
Fixes: QTBUG-113552
Pick-to: 6.6 6.5
Change-Id: I1f06f9e88046a77722291ac17c56090f8dff7cf3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-07-11 01:34:19 +02:00
..
qabstractitemview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qcolumnview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qdatawidgetmapper CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qfileiconprovider CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qheaderview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qitemdelegate CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qitemeditorfactory CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qitemview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qlistview QAbstractScrollArea: Don't include size of invisible scrollbars 2023-07-11 01:34:19 +02:00
qlistwidget CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qtableview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qtablewidget QAbstractScrollArea: Don't include size of invisible scrollbars 2023-07-11 01:34:19 +02:00
qtreeview CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
qtreewidget QAbstractScrollArea: Don't include size of invisible scrollbars 2023-07-11 01:34:19 +02:00
qtreewidgetitemiterator CMake: Make widgets tests standalone projects 2023-07-05 15:09:32 +02:00
CMakeLists.txt tests: Remove remains of qmake conversion from CMakeLists.txt files 2023-02-17 21:56:49 +01:00