@@ -1506,7 +1506,7 @@ private Q_SLOTS:
1507 lvwph->showHeader();
1507 lvwph->showHeader();
1509− QTRY_VERIFY(!lvwph->m_headerShowAnimation->isRunning());
1509+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1510 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1510 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1511 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1511 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1512 verifyItem(0, -20., 190., false, "Agressive", true);
1512 verifyItem(0, -20., 190., false, "Agressive", true);
@@ -1565,7 +1565,7 @@ private Q_SLOTS:
1566 lvwph->showHeader();
1566 lvwph->showHeader();
1568− QTRY_VERIFY(!lvwph->m_headerShowAnimation->isRunning());
1568+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1569 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1569 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1570 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1570 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1571 verifyItem(0, -375., 190., true, "Agressive", true);
1571 verifyItem(0, -375., 190., true, "Agressive", true);
@@ -1607,7 +1607,7 @@ private Q_SLOTS:
1608 lvwph->showHeader();
1608 lvwph->showHeader();
1610− QTRY_VERIFY(!lvwph->m_headerShowAnimation->isRunning());
1610+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1611 QTRY_VERIFY (lvwph->isAtYEnd());
1611 QTRY_VERIFY (lvwph->isAtYEnd());
@@ -1711,6 +1711,171 @@ private Q_SLOTS:
1711 QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1711 QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1714+ void testMaximizeVisibleArea()
1716+ lvwph->maximizeVisibleArea(2);
1717+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1719+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1720+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1721+ verifyItem(0, -278., 190., true, "Agressive", true);
1722+ verifyItem(1, -88., 240., false, "Regular", true);
1723+ verifyItem(2, 152, 390., false, "Mild", false);
1724+ verifyItem(3, 542, 390., true, "Bold", true);
1725+ QCOMPARE(lvwph->m_minYExtent, 0.);
1726+ QCOMPARE(lvwph->m_clipItem->y(), 328.);
1727+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1728+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1729+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1730+ QCOMPARE(lvwph->contentY(), 328.);
1731+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1732+ QVERIFY(!QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1733+ QCOMPARE(section(lvwph->m_topSectionItem), QString("Regular"));
1734+ QCOMPARE(sectionDelegateIndex(lvwph->m_topSectionItem), 1);
1735+ QCOMPARE(lvwph->m_topSectionItem->y(), 0.);
1738+ void testMaximizeVisibleAreaVisibleItems()
1740+ lvwph->maximizeVisibleArea(0);
1741+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1743+ verifyInitialTopPosition();
1745+ lvwph->maximizeVisibleArea(1);
1746+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1748+ verifyInitialTopPosition();
1751+ void testMaximizeVisibleAreaInvalidIndexes()
1753+ lvwph->maximizeVisibleArea(-1);
1754+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1756+ verifyInitialTopPosition();
1758+ lvwph->maximizeVisibleArea(1000);
1759+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1761+ verifyInitialTopPosition();
1763+ lvwph->maximizeVisibleArea(3);
1764+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1766+ verifyInitialTopPosition();
1769+ void testMaximizeVisibleAreaBigElement()
1771+ model->setProperty(2, "size", 4000);
1772+ verifyItem(2, 480, 4040., false, "Mild", false);
1774+ lvwph->maximizeVisibleArea(2);
1775+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1777+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1778+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1779+ verifyItem(0, -430., 190., true, "Agressive", true);
1780+ verifyItem(1, -240., 240., true, "Regular", true);
1781+ verifyItem(2, 0, 4040., false, "Mild", false);
1782+ QCOMPARE(lvwph->m_minYExtent, 0.);
1783+ QCOMPARE(lvwph->m_clipItem->y(), 480.);
1784+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1785+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1786+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1787+ QCOMPARE(lvwph->contentY(), 480.);
1788+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1789+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1792+ void testMaximizeVisibleAreaScrollDown()
1794+ changeContentY(350);
1795+ lvwph->maximizeVisibleArea(1);
1796+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1798+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1799+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1800+ verifyItem(0, -190., 190., true, "Agressive", true);
1801+ verifyItem(1, 0., 240., false, "Regular", false);
1802+ verifyItem(2, 240, 390., false, "Mild", false);
1803+ verifyItem(3, 630, 390., true, "Bold", true);
1804+ QCOMPARE(lvwph->m_minYExtent, 0.);
1805+ QCOMPARE(lvwph->m_clipItem->y(), 240.);
1806+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1807+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1808+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1809+ QCOMPARE(lvwph->contentY(), 240.);
1810+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1811+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1814+ void testMaximizeVisibleAreaScrollDownBigElement()
1816+ model->setProperty(1, "size", 1000);
1817+ changeContentY(1150);
1818+ lvwph->maximizeVisibleArea(1);
1819+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1821+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1822+ QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1823+ verifyItem(0, -498., 1040., false, "Regular", true);
1824+ verifyItem(1, 542., 390., true, "Mild", true);
1825+ QCOMPARE(lvwph->m_minYExtent, 1250/3.);
1826+ QCOMPARE(lvwph->m_clipItem->y(), 738.);
1827+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1828+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1829+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1830+ QCOMPARE(lvwph->contentY(), 738.);
1831+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1832+ QVERIFY(!QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1833+ QCOMPARE(section(lvwph->m_topSectionItem), QString("Regular"));
1834+ QCOMPARE(sectionDelegateIndex(lvwph->m_topSectionItem), 1);
1835+ QCOMPARE(lvwph->m_topSectionItem->y(), 0.);
1838+ void testMaximizeVisibleAreaBigElementInTheMiddle()
1840+ model->setProperty(1, "size", 1000);
1841+ changeContentY(650);
1843+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1844+ QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1845+ verifyItem(0, -410., 1040., false, "Regular", true);
1846+ verifyItem(1, 630., 390., true, "Mild", true);
1847+ QCOMPARE(lvwph->m_minYExtent, 525.);
1848+ QCOMPARE(lvwph->m_clipItem->y(), 650.);
1849+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1850+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1851+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1852+ QCOMPARE(lvwph->contentY(), 650.);
1853+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1854+ QVERIFY(!QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1855+ QCOMPARE(section(lvwph->m_topSectionItem), QString("Regular"));
1856+ QCOMPARE(sectionDelegateIndex(lvwph->m_topSectionItem), 1);
1857+ QCOMPARE(lvwph->m_topSectionItem->y(), 0.);
1859+ lvwph->maximizeVisibleArea(1);
1860+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1862+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1863+ QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1864+ verifyItem(0, -410., 1040., false, "Regular", true);
1865+ verifyItem(1, 630., 390., true, "Mild", true);
1866+ QCOMPARE(lvwph->m_minYExtent, 525.);
1867+ QCOMPARE(lvwph->m_clipItem->y(), 650.);
1868+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1869+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1870+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1871+ QCOMPARE(lvwph->contentY(), 650.);
1872+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1873+ QVERIFY(!QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1874+ QCOMPARE(section(lvwph->m_topSectionItem), QString("Regular"));
1875+ QCOMPARE(sectionDelegateIndex(lvwph->m_topSectionItem), 1);
1876+ QCOMPARE(lvwph->m_topSectionItem->y(), 0.);
1715 QQuickView *view;
1880 QQuickView *view;
1716 ListViewWithPageHeader *lvwph;
1881 ListViewWithPageHeader *lvwph;