diff options
author | Frank Reininghaus <frank78ac@googlemail.com> | 2010-09-22 08:19:59 (GMT) |
---|---|---|
committer | Jason McDonald <jason.mcdonald@nokia.com> | 2010-09-24 01:19:49 (GMT) |
commit | b255a070907cca8a7f6857e24019ea49093a4d36 (patch) | |
tree | c859a4823328e0b34013262f44d40d997f475503 /src/gui | |
parent | 0c63d0ed5417c72056632fc5b4bfc29f889b1cc1 (diff) | |
download | Qt-b255a070907cca8a7f6857e24019ea49093a4d36.zip Qt-b255a070907cca8a7f6857e24019ea49093a4d36.tar.gz Qt-b255a070907cca8a7f6857e24019ea49093a4d36.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>
(cherry picked from commit 6da6b7099d4e0b49329793e4b90703ec3d868048)
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/itemviews/qtreeview.cpp | 4 |
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) |