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/kitemlistview.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/kitemviews/kitemlistview.h') diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index 091d2c36b..73b736bf7 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -337,16 +337,24 @@ private: QHash headerRolesWidths() const; /** - * Updates m_visibleRoleSizes by calling KItemListView::visibleRoleSizes() - * if the m_itemRect is empty and no custom header-widths are used - * (see m_useHeaderWidths). + * Updates m_visibleRolesSizes by calling KItemListView::visibleRolesSizes(). + * Nothing will be done if m_itemRect is not empty or custom header-widths + * are used (see m_useHeaderWidths). Also m_strechedVisibleRolesSizes will be adjusted + * to respect the available view-size. */ - void updateVisibleRoleSizes(const KItemRangeList& itemRanges); + void updateVisibleRolesSizes(const KItemRangeList& itemRanges); /** * Convenience method for updateVisibleRoleSizes(KItemRangeList() << KItemRange(0, m_model->count()). */ - void updateVisibleRoleSizes(); + void updateVisibleRolesSizes(); + + /** + * Updates m_stretchedVisibleRolesSizes based on m_visibleRolesSizes and the available + * view-size. Nothing will be done if m_itemRect is not empty or custom header-widths + * are used (see m_useHeaderWidths). + */ + void updateStretchedVisibleRolesSizes(); /** * Helper function for triggerAutoScrolling(). @@ -369,6 +377,7 @@ private: KItemModelBase* m_model; QList m_visibleRoles; QHash m_visibleRolesSizes; + QHash m_stretchedVisibleRolesSizes; KItemListWidgetCreatorBase* m_widgetCreator; KItemListGroupHeaderCreatorBase* m_groupHeaderCreator; KItemListStyleOption m_styleOption; -- cgit v1.3.1