From e43f29576d4666a66cd4d236418baf403f176069 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 28 Sep 2011 20:04:31 +0200 Subject: Details view: Improve performance when expanding items Prevent unnecessary calls to visibleRolesSizes() when expanding items. Also the performance has been improved when resizing the window. --- src/kitemviews/kitemlistcontainer.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/kitemviews/kitemlistcontainer.cpp') diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 3237187b4..45db700c5 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -205,7 +205,7 @@ void KItemListContainer::wheelEvent(QWheelEvent* event) } KItemListView* view = m_controller->view(); - + if (!view || event->orientation() != view->scrollOrientation()) { return; } @@ -343,7 +343,7 @@ void KItemListContainer::updateItemOffsetScrollBar() } const int value = view->itemOffset(); - const int maximum = qMax(0, int(view->maximumItemOffset() - pageStep)); + const int maximum = qMax(0, int(view->maximumItemOffset()) - pageStep); itemOffsetScrollBar->setSingleStep(singleStep); itemOffsetScrollBar->setPageStep(pageStep); @@ -366,13 +366,16 @@ void KItemListContainer::updateGeometries() rect.adjust(0, 0, -widthDec, -heightDec); - m_controller->view()->setGeometry(QRect(0, 0, rect.width(), rect.height())); + const QRectF newGeometry(0, 0, rect.width(), rect.height()); + if (m_controller->view()->geometry() != newGeometry) { + m_controller->view()->setGeometry(newGeometry); - static_cast(viewport())->scene()->setSceneRect(0, 0, rect.width(), rect.height()); - static_cast(viewport())->viewport()->setGeometry(QRect(0, 0, rect.width(), rect.height())); + static_cast(viewport())->scene()->setSceneRect(0, 0, rect.width(), rect.height()); + static_cast(viewport())->viewport()->setGeometry(QRect(0, 0, rect.width(), rect.height())); - updateScrollOffsetScrollBar(); - updateItemOffsetScrollBar(); + updateScrollOffsetScrollBar(); + updateItemOffsetScrollBar(); + } } void KItemListContainer::initialize() -- cgit v1.3