tests/auto/qabstractitemview/tst_qabstractitemview.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    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"