From ba401922e1577d629e8b01bffa73f5e721b17b59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 9 Feb 2014 21:04:00 +0100 Subject: Do not divide by zero when the last group is collapsed. --- gui/groupview/GroupView.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gui/groupview/GroupView.cpp b/gui/groupview/GroupView.cpp index 5ee44cbb..3f7dd6e0 100644 --- a/gui/groupview/GroupView.cpp +++ b/gui/groupview/GroupView.cpp @@ -116,19 +116,20 @@ void GroupView::updateGeometries() int totalHeight = 0; // top margin totalHeight += m_categoryMargin; + int itemScroll = 0; for (auto category : m_groups) { category->m_verticalPosition = totalHeight; totalHeight += category->totalHeight() + m_categoryMargin; + if(!itemScroll && category->totalHeight() != 0) + { + itemScroll = category->contentHeight() / category->numRows(); + } } - auto category = m_groups.last(); - int itemScroll = category->contentHeight() / category->numRows(); - /* - // remove the last margin (we don't want it) - totalHeight -= m_categoryMargin; - // add a margin on top... - totalHeight += m_categoryMargin; - */ + // do not divide by zero + if(itemScroll == 0) + itemScroll = 64; + totalHeight += m_bottomMargin; verticalScrollBar()->setSingleStep ( itemScroll ); const int rowsPerPage = qMax ( viewport()->height() / itemScroll, 1 ); -- cgit v1.2.3