90 lines
3.2 KiB
Diff
90 lines
3.2 KiB
Diff
|
Parent: f5a4e984 (QQuickTextInputPrivate: refactor getImplicitWidth() to calculateImplicitWidth())
|
||
|
Author: David Redondo <qt@david-redondo.de>
|
||
|
AuthorDate: 2020-05-13 11:04:23 +0200
|
||
|
Commit: Mitch Curtis <mitch.curtis@qt.io>
|
||
|
CommitDate: 2020-05-25 10:58:35 +0200
|
||
|
|
||
|
QQuickItemView: Fix max(X/Y)Extent()
|
||
|
|
||
|
QQuickFlickable maxXExtent() and maxYExtent() return the amount of space
|
||
|
that is not shown when inside a ScrollView. QQuickItemView however just
|
||
|
returned width() if vertical and height() if horizontal. In these cases
|
||
|
just defer to the QQuickFlickable base implementation like minXExtent()
|
||
|
and minYExtent() already do.
|
||
|
|
||
|
This change also adds tst_qquicklistview2 to speed up development.
|
||
|
tst_QQuickListView is almost 9000 lines long, and compiling it
|
||
|
is slow. In addition, a similar approach (creating a second test to
|
||
|
avoid the slowness of a massive one) already exists for QQuickItem
|
||
|
tests.
|
||
|
|
||
|
Fixes: QTBUG-83890
|
||
|
Pick-to: 5.15
|
||
|
Change-Id: I7f4060c2f46ae07611bedceca0d322c5f7f6affb
|
||
|
|
||
|
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
|
||
|
index 2b4ca9e2..f2feba2a 100644
|
||
|
--- a/src/quick/items/qquickitemview.cpp
|
||
|
+++ b/src/quick/items/qquickitemview.cpp
|
||
|
@@ -1393,7 +1393,7 @@ qreal QQuickItemView::maxYExtent() const
|
||
|
{
|
||
|
Q_D(const QQuickItemView);
|
||
|
if (d->layoutOrientation() == Qt::Horizontal)
|
||
|
- return height();
|
||
|
+ return QQuickFlickable::maxYExtent();
|
||
|
|
||
|
if (d->vData.maxExtentDirty) {
|
||
|
d->maxExtent = d->maxExtentForAxis(d->vData, false);
|
||
|
@@ -1421,7 +1421,7 @@ qreal QQuickItemView::maxXExtent() const
|
||
|
{
|
||
|
Q_D(const QQuickItemView);
|
||
|
if (d->layoutOrientation() == Qt::Vertical)
|
||
|
- return width();
|
||
|
+ return QQuickFlickable::maxXExtent();
|
||
|
|
||
|
if (d->hData.maxExtentDirty) {
|
||
|
d->maxExtent = d->maxExtentForAxis(d->hData, true);
|
||
|
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||
|
index a7aefbe4..afe5c5ac 100644
|
||
|
--- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||
|
+++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||
|
@@ -73,6 +73,8 @@ public:
|
||
|
tst_QQuickListView();
|
||
|
|
||
|
private slots:
|
||
|
+ // WARNING: please add new tests to tst_qquicklistview2; this file is too slow to work with.
|
||
|
+
|
||
|
void init();
|
||
|
void cleanupTestCase();
|
||
|
// Test QAbstractItemModel model types
|
||
|
@@ -300,6 +302,8 @@ private slots:
|
||
|
void clickHeaderAndFooterWhenClip();
|
||
|
void animatedDelegate();
|
||
|
|
||
|
+ // WARNING: please add new tests to tst_qquicklistview2; this file is too slow to work with.
|
||
|
+
|
||
|
private:
|
||
|
template <class T> void items(const QUrl &source);
|
||
|
template <class T> void changed(const QUrl &source);
|
||
|
@@ -10109,6 +10113,8 @@ void tst_QQuickListView::animatedDelegate()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+// WARNING: please add new tests to tst_qquicklistview2; this file is too slow to work with.
|
||
|
+
|
||
|
QTEST_MAIN(tst_QQuickListView)
|
||
|
|
||
|
#include "tst_qquicklistview.moc"
|
||
|
diff --git a/tests/auto/quick/quick.pro b/tests/auto/quick/quick.pro
|
||
|
index 45bcf8a9..00f7d64d 100644
|
||
|
--- a/tests/auto/quick/quick.pro
|
||
|
+++ b/tests/auto/quick/quick.pro
|
||
|
@@ -67,6 +67,7 @@ QUICKTESTS += \
|
||
|
qquickitem2 \
|
||
|
qquickitemlayer \
|
||
|
qquicklistview \
|
||
|
+ qquicklistview2 \
|
||
|
qquicktableview \
|
||
|
qquickloader \
|
||
|
qquickmousearea \
|