diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-08-09 14:49:38 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-10 21:59:47 +0200 |
commit | 146b7a9c8bf4ca93488099a19853ca3a47df08cd (patch) | |
tree | 100b8d03fbdbf496993f6b83249a8295c0a4c072 /tests | |
parent | 59cd316d6c12df60297347ddc10f29e19a241066 (diff) |
Take scroll position into account when painting drag pixmap.
Task-number: QTBUG-26793
Change-Id: Ic19cb6581cd5838d26713998e152772a5d12da4f
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/itemviews/qlistview/qlistview.pro | 2 | ||||
-rw-r--r-- | tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/tests/auto/widgets/itemviews/qlistview/qlistview.pro b/tests/auto/widgets/itemviews/qlistview/qlistview.pro index 6820370cea..1fb5b7f767 100644 --- a/tests/auto/widgets/itemviews/qlistview/qlistview.pro +++ b/tests/auto/widgets/itemviews/qlistview/qlistview.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qlistview -QT += widgets gui-private testlib +QT += widgets gui-private widgets-private core-private testlib SOURCES += tst_qlistview.cpp win32:!wince*: LIBS += -luser32 DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp index a9169b0cbc..507a5f3308 100644 --- a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp +++ b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp @@ -45,6 +45,7 @@ #include <qabstractitemmodel.h> #include <qapplication.h> #include <qlistview.h> +#include <private/qlistview_p.h> #include <qlistwidget.h> #include <qitemdelegate.h> #include <qstandarditemmodel.h> @@ -133,6 +134,8 @@ private slots: void taskQTBUG_12308_wrongFlowLayout(); void taskQTBUG_21115_scrollToAndHiddenItems_data(); void taskQTBUG_21115_scrollToAndHiddenItems(); + void draggablePaintPairs_data(); + void draggablePaintPairs(); }; // Testing get/set functions @@ -2115,6 +2118,44 @@ void tst_QListView::taskQTBUG_21115_scrollToAndHiddenItems() QCOMPARE(lv.visualRect(index), firstItemRect); } +void tst_QListView::draggablePaintPairs_data() +{ + QTest::addColumn<int>("row"); + + for (int row = 0; row < 30; ++row) + QTest::newRow("row-" + QByteArray::number(row)) << row; +} + +void tst_QListView::draggablePaintPairs() +{ + QFETCH(int, row); + + QListView view; + + QStringListModel model; + QStringList list; + for (int i = 0; i < 30; i++) + list << QString::number(i); + model.setStringList(list); + view.setModel(&model); + + view.show(); + QTest::qWaitForWindowExposed(&view); + + QModelIndex expectedIndex = model.index(row, 0); + QListViewPrivate *privateClass = static_cast<QListViewPrivate *>(QListViewPrivate::get(&view)); + QRect rect; + QModelIndexList indexList; + indexList << expectedIndex; + view.scrollTo(expectedIndex); + QItemViewPaintPairs pairs = privateClass->draggablePaintPairs(indexList, &rect); + QCOMPARE(indexList.size(), pairs.size()); + foreach (const QItemViewPaintPair pair, pairs) { + QCOMPARE(rect, pair.first); + QCOMPARE(expectedIndex, pair.second); + } +} + QTEST_MAIN(tst_QListView) #include "tst_qlistview.moc" |