44 |
44 |
45 #include <qabstractitemview.h> |
45 #include <qabstractitemview.h> |
46 #include <qstandarditemmodel.h> |
46 #include <qstandarditemmodel.h> |
47 #include <qapplication.h> |
47 #include <qapplication.h> |
48 #include <qlistview.h> |
48 #include <qlistview.h> |
|
49 #include <qlistwidget.h> |
49 #include <qtableview.h> |
50 #include <qtableview.h> |
|
51 #include <qtablewidget.h> |
50 #include <qtreeview.h> |
52 #include <qtreeview.h> |
51 #include <qtreewidget.h> |
53 #include <qtreewidget.h> |
52 #include <qheaderview.h> |
54 #include <qheaderview.h> |
53 #include <qspinbox.h> |
55 #include <qspinbox.h> |
54 #include <qitemdelegate.h> |
56 #include <qitemdelegate.h> |
222 void task200665_itemEntered(); |
224 void task200665_itemEntered(); |
223 void task257481_emptyEditor(); |
225 void task257481_emptyEditor(); |
224 void shiftArrowSelectionAfterScrolling(); |
226 void shiftArrowSelectionAfterScrolling(); |
225 void shiftSelectionAfterRubberbandSelection(); |
227 void shiftSelectionAfterRubberbandSelection(); |
226 void ctrlRubberbandSelection(); |
228 void ctrlRubberbandSelection(); |
|
229 void QTBUG6407_extendedSelection(); |
|
230 void QTBUG6753_selectOnSelection(); |
227 }; |
231 }; |
228 |
232 |
229 class MyAbstractItemDelegate : public QAbstractItemDelegate |
233 class MyAbstractItemDelegate : public QAbstractItemDelegate |
230 { |
234 { |
231 public: |
235 public: |
1431 selected = view.selectionModel()->selectedIndexes(); |
1435 selected = view.selectionModel()->selectedIndexes(); |
1432 QCOMPARE(selected.count(), 1); |
1436 QCOMPARE(selected.count(), 1); |
1433 QVERIFY(selected.contains(index2)); |
1437 QVERIFY(selected.contains(index2)); |
1434 } |
1438 } |
1435 |
1439 |
|
1440 void tst_QAbstractItemView::QTBUG6407_extendedSelection() |
|
1441 { |
|
1442 QListWidget view; |
|
1443 view.setSelectionMode(QAbstractItemView::ExtendedSelection); |
|
1444 for(int i = 0; i < 50; ++i) |
|
1445 view.addItem(QString::number(i)); |
|
1446 |
|
1447 view.resize(200,200); |
|
1448 |
|
1449 view.show(); |
|
1450 QApplication::setActiveWindow(&view); |
|
1451 QTest::qWaitForWindowShown(&view); |
|
1452 QTRY_COMPARE(static_cast<QWidget *>(&view), QApplication::activeWindow()); |
|
1453 |
|
1454 view.verticalScrollBar()->setValue(view.verticalScrollBar()->maximum()); |
|
1455 QTest::qWait(20); |
|
1456 |
|
1457 QModelIndex index49 = view.model()->index(49,0); |
|
1458 QPoint p = view.visualRect(index49).center(); |
|
1459 QVERIFY(view.viewport()->rect().contains(p)); |
|
1460 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p); |
|
1461 QCOMPARE(view.currentIndex(), index49); |
|
1462 QCOMPARE(view.selectedItems().count(), 1); |
|
1463 |
|
1464 QModelIndex index47 = view.model()->index(47,0); |
|
1465 p = view.visualRect(index47).center(); |
|
1466 QVERIFY(view.viewport()->rect().contains(p)); |
|
1467 QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ShiftModifier, p); |
|
1468 QCOMPARE(view.currentIndex(), index47); |
|
1469 QCOMPARE(view.selectedItems().count(), 3); //49, 48, 47; |
|
1470 |
|
1471 QModelIndex index44 = view.model()->index(44,0); |
|
1472 p = view.visualRect(index44).center(); |
|
1473 QVERIFY(view.viewport()->rect().contains(p)); |
|
1474 QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::ShiftModifier, p); |
|
1475 QCOMPARE(view.currentIndex(), index44); |
|
1476 QCOMPARE(view.selectedItems().count(), 6); //49 .. 44; |
|
1477 |
|
1478 } |
|
1479 |
|
1480 void tst_QAbstractItemView::QTBUG6753_selectOnSelection() |
|
1481 { |
|
1482 QTableWidget table(5, 5); |
|
1483 for (int i = 0; i < table.rowCount(); ++i) |
|
1484 for (int j = 0; j < table.columnCount(); ++j) |
|
1485 table.setItem(i, j, new QTableWidgetItem("choo-be-doo-wah")); |
|
1486 |
|
1487 table.show(); |
|
1488 table.setSelectionMode(QAbstractItemView::ExtendedSelection); |
|
1489 table.selectAll(); |
|
1490 QTest::qWaitForWindowShown(&table); |
|
1491 QModelIndex item = table.model()->index(1,1); |
|
1492 QRect itemRect = table.visualRect(item); |
|
1493 QTest::mouseMove(table.viewport(), itemRect.center()); |
|
1494 QTest::mouseClick(table.viewport(), Qt::LeftButton, Qt::NoModifier, itemRect.center()); |
|
1495 QTest::qWait(20); |
|
1496 |
|
1497 QCOMPARE(table.selectedItems().count(), 1); |
|
1498 QCOMPARE(table.selectedItems().first(), table.item(item.row(), item.column())); |
|
1499 } |
|
1500 |
1436 QTEST_MAIN(tst_QAbstractItemView) |
1501 QTEST_MAIN(tst_QAbstractItemView) |
1437 #include "tst_qabstractitemview.moc" |
1502 #include "tst_qabstractitemview.moc" |