summaryrefslogtreecommitdiffstats
path: root/src/gui/itemviews
diff options
context:
space:
mode:
authorFrank Reininghaus <frank78ac@googlemail.com>2010-09-22 08:19:59 (GMT)
committerOlivier Goffart <olivier.goffart@nokia.com>2010-09-22 08:19:59 (GMT)
commit6da6b7099d4e0b49329793e4b90703ec3d868048 (patch)
tree2236200f0d2d1222865053480d45379e1b2ea749 /src/gui/itemviews
parent80c2e1211065f606c6f39e708a74afad1c624663 (diff)
downloadQt-6da6b7099d4e0b49329793e4b90703ec3d868048.zip
Qt-6da6b7099d4e0b49329793e4b90703ec3d868048.tar.gz
Qt-6da6b7099d4e0b49329793e4b90703ec3d868048.tar.bz2
QTreeView: do not scroll to top if last item is removed
When the last item is the current item and is removed, QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's viewItems member is cleared. This commit makes sure that viewItems is restored by calling QTreeView::doItemsLayout() in this case, preventing that the scroll bar range is set to zero temporarily and the view is scrolled to the top unexpectedly (this was a regression in 4.7.0: QTBUG-13567). Merge-request: 2481 Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Diffstat (limited to 'src/gui/itemviews')
-rw-r--r--src/gui/itemviews/qtreeview.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
index b797776..40b51fe 100644
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
@@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars()
if (!viewportSize.isValid())
viewportSize = QSize(0, 0);
+ if (viewItems.isEmpty()) {
+ q->doItemsLayout();
+ }
+
int itemsInViewport = 0;
if (uniformRowHeights) {
if (defaultItemHeight <= 0)