aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitemview.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@jollamobile.com>2014-07-23 17:51:37 +1000
committerMartin Jones <martin.jones@jollamobile.com>2014-07-25 02:58:24 +0200
commit39c144f44be76ccc7bdec540a7b7ec00cf0fdc5d (patch)
tree65a49bcc2b84b6594f2a2127d632cc48fbdc7edb /src/quick/items/qquickitemview.cpp
parent79f262711c053608c7b0d775a8c7031368ddd17f (diff)
Don't recreate header and footer unnecessarily
The only time that they need to be recreated is if the orientation changes (even then, a good implementation could handle it, but no point requiring that now). Task-number: QTBUG-40375 Change-Id: Id0215fb812724827bb139cda8f8dc6208c703852 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Diffstat (limited to 'src/quick/items/qquickitemview.cpp')
-rw-r--r--src/quick/items/qquickitemview.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 94abbd0954..ff8c69a9c0 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -1783,18 +1783,20 @@ void QQuickItemViewPrivate::refill(qreal from, qreal to)
emit q->countChanged();
}
-void QQuickItemViewPrivate::regenerate()
+void QQuickItemViewPrivate::regenerate(bool orientationChanged)
{
Q_Q(QQuickItemView);
if (q->isComponentComplete()) {
currentChanges.reset();
- delete header;
- header = 0;
- delete footer;
- footer = 0;
+ if (orientationChanged) {
+ delete header;
+ header = 0;
+ delete footer;
+ footer = 0;
+ }
+ clear();
updateHeader();
updateFooter();
- clear();
updateViewport();
setPosition(contentStartOffset());
refill();