tests/auto/qlistview/tst_qlistview.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 37 758a864f9613
--- a/tests/auto/qlistview/tst_qlistview.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tests/auto/qlistview/tst_qlistview.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -123,6 +123,8 @@
     void taskQTBUG_435_deselectOnViewportClick();
     void taskQTBUG_2678_spacingAndWrappedText();
     void taskQTBUG_5877_skippingItemInPageDownUp();
+    void taskQTBUG_9455_wrongScrollbarRanges();
+    void styleOptionViewItem();
 };
 
 // Testing get/set functions
@@ -1941,5 +1943,64 @@
     }
 }
 
+class ListView_9455 : public QListView
+{
+public:
+    QSize contentsSize() const
+    {
+        return QListView::contentsSize();
+    }
+};
+
+void tst_QListView::taskQTBUG_9455_wrongScrollbarRanges()
+{
+    QStringList list;
+    const int nrItems = 8;
+    for (int i = 0; i < nrItems; i++)
+        list << QString().sprintf("item %d", i);
+
+    QStringListModel model(list);
+    ListView_9455 w;
+    w.setModel(&model);
+    w.setViewMode(QListView::IconMode);
+    w.resize(116, 132);
+    w.setMovement(QListView::Static);
+    const int spacing = 40;
+    w.setSpacing(spacing);
+    w.show();
+    QTest::qWaitForWindowShown(&w);
+    QCOMPARE(w.verticalScrollBar()->maximum(), w.contentsSize().height() - w.viewport()->geometry().height());
+}
+
+void tst_QListView::styleOptionViewItem()
+{
+    class MyDelegate : public QStyledItemDelegate
+    {
+        public:
+            void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+            {
+                QVERIFY(qstyleoption_cast<const QStyleOptionViewItemV4 *>(&option));
+                QStyleOptionViewItemV4 opt(option);
+                initStyleOption(&opt, index);
+
+                QCOMPARE(opt.index, index);
+
+                QStyledItemDelegate::paint(painter, option, index);
+            }
+    };
+
+    QListView view;
+    QStandardItemModel model;
+    view.setModel(&model);
+    MyDelegate delegate;
+    view.setItemDelegate(&delegate);
+    model.appendRow(QList<QStandardItem*>()
+        << new QStandardItem("Beginning") <<  new QStandardItem("Middle") << new QStandardItem("Middle") << new QStandardItem("End") );
+
+    // Run test
+    view.showMaximized();
+    QApplication::processEvents();
+}
+
 QTEST_MAIN(tst_QListView)
 #include "tst_qlistview.moc"