on xenial help sign in
LVWPH: Do not crash on showHeader if we don't have a header
826c2edAlbert Astals
plugins/ListViewWithPageHeader/listviewwithpageheader.cpp+3
@@ -342,6 +342,9 @@ void ListViewWithPageHeader::positionAtBeginning()
342
342
343void ListViewWithPageHeader::showHeader()
343void ListViewWithPageHeader::showHeader()
344{
344{
345+ if (!m_headerItem)
346+ return;
347+
345 auto to = qMax(-minYExtent(), contentY() - m_headerItem->height() + m_headerItemShownHeight);
348 auto to = qMax(-minYExtent(), contentY() - m_headerItem->height() + m_headerItemShownHeight);
346 if (to != contentY()) {
349 if (to != contentY()) {
347 m_headerShowAnimation->setTo(to);
350 m_headerShowAnimation->setTo(to);
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+6
@@ -1299,6 +1299,12 @@ private Q_SLOTS:
1299 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1299 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1300 }
1300 }
1301
1301
1302+ void testCrashShowHeaderWithNoHeader()
1303+ {
1304+ lvwph->setHeader(nullptr);
1305+ lvwph->showHeader();
1306+ }
1307+
1302private:
1308private:
1303 QQuickView *view;
1309 QQuickView *view;
1304 ListViewWithPageHeader *lvwph;
1310 ListViewWithPageHeader *lvwph;