summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-02-28 01:00:14 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-02-28 01:00:15 +0100
commit043f99954faa8355c9f0d78d441099a6f7e1ad8b (patch)
tree3543e16fef20cb6f71b1374594477a4b145f9bab /tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
parentf6ce77f3e4dbc67531db7eeaf271c5416b4a4934 (diff)
parentf657c7426329d3763bbf3373b986378c22020269 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Diffstat (limited to 'tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp')
-rw-r--r--tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
index e1d527b398..0b828b8484 100644
--- a/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
+++ b/tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp
@@ -121,6 +121,7 @@ private slots:
void task254449_draggingItemToNegativeCoordinates();
void keyboardSearch();
void shiftSelectionWithNonUniformItemSizes();
+ void shiftSelectionWithItemAlignment();
void clickOnViewportClearsSelection();
void task262152_setModelColumnNavigate();
void taskQTBUG_2233_scrollHiddenItems_data();
@@ -1802,6 +1803,51 @@ void tst_QListView::shiftSelectionWithNonUniformItemSizes()
}
}
+void tst_QListView::shiftSelectionWithItemAlignment()
+{
+ QStringList items;
+ for (int c = 0; c < 2; c++) {
+ for (int i = 10; i > 0; i--)
+ items << QString(i, QLatin1Char('*'));
+
+ for (int i = 1; i < 11; i++)
+ items << QString(i, QLatin1Char('*'));
+ }
+
+ QListView view;
+ view.setFlow(QListView::TopToBottom);
+ view.setWrapping(true);
+ view.setItemAlignment(Qt::AlignLeft);
+ view.setSelectionMode(QAbstractItemView::ExtendedSelection);
+
+ QStringListModel model(items);
+ view.setModel(&model);
+
+ QFont font = view.font();
+ font.setPixelSize(10);
+ view.setFont(font);
+ view.resize(300, view.sizeHintForRow(0) * items.size() / 2 + view.horizontalScrollBar()->height());
+
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QVERIFY(QTest::qWaitForWindowActive(&view));
+ QCOMPARE(static_cast<QWidget *>(&view), QApplication::activeWindow());
+
+ QModelIndex index1 = view.model()->index(items.size() / 4, 0);
+ QPoint p = view.visualRect(index1).center();
+ QVERIFY(view.viewport()->rect().contains(p));
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
+ QCOMPARE(view.currentIndex(), index1);
+ QCOMPARE(view.selectionModel()->selectedIndexes().size(), 1);
+
+ QModelIndex index2 = view.model()->index(items.size() / 4 * 3, 0);
+ p = view.visualRect(index2).center();
+ QVERIFY(view.viewport()->rect().contains(p));
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ShiftModifier, p);
+ QCOMPARE(view.currentIndex(), index2);
+ QCOMPARE(view.selectionModel()->selectedIndexes().size(), index2.row() - index1.row() + 1);
+}
+
void tst_QListView::clickOnViewportClearsSelection()
{
QStringList items;