on xenial help sign in
LWPH Fix crash from bug 1279434
commit4541c19d9b4ac75d3a12d7c76c6fbac59689a157 authorAlbert Astals <albert.astals@canonical.com> dateThu 13 Feb 2014, 11:29 (13 years ago) parentd496b75
2 files changed+28−1
plugins/DashViews/listviewwithpageheader.cpp+1−1 tests/plugins/DashViews/listviewwithpageheadertest.cpp+27
plugins/DashViews/listviewwithpageheader.cpp+1−1
@@ -1073,7 +1073,7 @@ void ListViewWithPageHeader::itemGeometryChanged(QQuickItem * /*item*/, const QR
10731073{
10741074 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
10751075 if (heightDiff != 0) {
1076− if (oldGeometry.y() + oldGeometry.height() + m_clipItem->y() < contentY() && !m_visibleItems.isEmpty()) {
1076+ if (oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) {
10771077 ListItem *firstItem = m_visibleItems.first();
10781078 firstItem->setY(firstItem->y() - heightDiff);
10791079 adjustMinYExtent();
tests/plugins/DashViews/listviewwithpageheadertest.cpp+27
@@ -1866,6 +1866,33 @@ private Q_SLOTS:
18661866 QTRY_COMPARE(lvwph->m_headerItem->y(), -lvwph->m_minYExtent);
18671867 }
18681868
1869+ void testBug1279434()
1870+ {
1871+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 6));
1872+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1873+
1874+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1875+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 125));
1876+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1877+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1878+ verifyItem(0, 50., 125., false);
1879+ verifyItem(1, 175., 100., false);
1880+
1881+ lvwph->setContentY(175);
1882+
1883+ model->setProperty(1, "size", 4);
1884+ model->setProperty(0, "size", 4);
1885+
1886+ model->setProperty(0, "size", 6);
1887+
1888+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 2));
1889+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1890+ QCOMPARE(lvwph->m_firstVisibleIndex, -1);
1891+
1892+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1893+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
1894+ }
1895+
18691896private:
18701897 QQuickView *view;
18711898 ListViewWithPageHeader *lvwph;