1 From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001
2 From: Frank Reininghaus <frank78ac@googlemail.com>
3 Date: Wed, 22 Sep 2010 10:19:59 +0200
4 Subject: [PATCH] QTreeView: do not scroll to top if last item is removed
6 When the last item is the current item and is removed,
7 QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's
8 viewItems member is cleared. This commit makes sure that viewItems is
9 restored by calling QTreeView::doItemsLayout() in this case, preventing
10 that the scroll bar range is set to zero temporarily and the view is
11 scrolled to the top unexpectedly (this was a regression in 4.7.0:
15 Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
17 diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
18 index b797776..40b51fe 100644
19 --- a/src/gui/itemviews/qtreeview.cpp
20 +++ b/src/gui/itemviews/qtreeview.cpp
21 @@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars()
22 if (!viewportSize.isValid())
23 viewportSize = QSize(0, 0);
25 + if (viewItems.isEmpty()) {
29 int itemsInViewport = 0;
30 if (uniformRowHeights) {
31 if (defaultItemHeight <= 0)