diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-12-22 13:13:50 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-12-23 23:24:36 +0000 |
commit | abf030cead015752b22774b46e290e3a5e4ef4e4 (patch) | |
tree | e9cb5a29a8b16e5b18b41e61a9254da4fe6c2698 /tests/auto/quick | |
parent | 9c4621217f47b8427e284423d4e5c5e4dba00bfc (diff) |
Fix ListView.OverlayHeader
Infinite loop because of rounding in QQuickFlickablePrivate::fixup().
Change-Id: Icffe216587d90660ac3cb8090a676868416566c8
Task-number: QTBUG-50105
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/qquicklistview/data/qtbug50105.qml | 130 | ||||
-rw-r--r-- | tests/auto/quick/qquicklistview/tst_qquicklistview.cpp | 14 |
2 files changed, 144 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicklistview/data/qtbug50105.qml b/tests/auto/quick/qquicklistview/data/qtbug50105.qml new file mode 100644 index 0000000000..a48a881a21 --- /dev/null +++ b/tests/auto/quick/qquicklistview/data/qtbug50105.qml @@ -0,0 +1,130 @@ +import QtQuick 2.4 +import QtQuick.Window 2.2 + +Window { + id : mainWindow + visible: true + width: 800 + height: 480 + + property real gridListWidth : (width * 0.60) + property real gridListHeight : (height * 0.50) + + property real gridCellSpacing : (height * 0.004) + property real gridCellHeight : (height * 0.039) + property real gridCellWidth : (width * 0.20) + + Rectangle { + id : rectBackground + anchors.fill: parent + color : "white" + + ListView { + id : ls + width: mainWindow.gridListWidth + height: mainWindow.gridListHeight + clip : true + headerPositioning: ListView.OverlayHeader + spacing : mainWindow.gridCellSpacing + + model: ListModel { + ListElement { + name: "Bill Smith" + number: "555 3264" + hairColor: "red" + } + ListElement { + name: "John Brown" + number: "484 7789" + hairColor: "blue" + } + ListElement { + name: "Sam Wise" + number: "284 1547" + hairColor: "yellow" + } + } + + header : Row { + spacing : mainWindow.gridCellSpacing + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "blue" + + Text { + anchors.centerIn: parent + color : "white" + text: "Name" + } + } + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "blue" + + Text { + anchors.centerIn: parent + color : "white" + text: "Number" + } + + } + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "blue" + + Text { + anchors.centerIn: parent + color : "white" + text: "Hair Color" + } + } + } + + delegate: Row { + spacing : mainWindow.gridCellSpacing + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "red" + + Text { + anchors.centerIn: parent + color : "white" + text: name + } + } + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "red" + + Text { + anchors.centerIn: parent + color : "white" + text: number + } + } + + Rectangle { + width : mainWindow.gridCellWidth + height : mainWindow.gridCellHeight + color : "red" + + Text { + anchors.centerIn: parent + color : "white" + text: hairColor + } + } + } + } + } +} diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index b3a6edb66a..1fec04d08a 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -252,6 +252,8 @@ private slots: void QTBUG_48044_currentItemNotVisibleAfterTransition(); void QTBUG_48870_fastModelUpdates(); + void QTBUG_50105(); + private: template <class T> void items(const QUrl &source); template <class T> void changed(const QUrl &source); @@ -8437,6 +8439,18 @@ void tst_QQuickListView::QTBUG_48870_fastModelUpdates() delete window; } +// infinite loop in overlay header positioning due to undesired rounding in QQuickFlickablePrivate::fixup() +void tst_QQuickListView::QTBUG_50105() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("qtbug50105.qml")); + + QScopedPointer<QQuickWindow> window(qobject_cast<QQuickWindow *>(component.create())); + QVERIFY(window.data()); + QVERIFY(QTest::qWaitForWindowExposed(window.data())); +} + QTEST_MAIN(tst_QQuickListView) #include "tst_qquicklistview.moc" |