diff options
Diffstat (limited to 'abs/core/qt/fix-scroll-when-last-item-is-removed.patch')
-rw-r--r-- | abs/core/qt/fix-scroll-when-last-item-is-removed.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/abs/core/qt/fix-scroll-when-last-item-is-removed.patch b/abs/core/qt/fix-scroll-when-last-item-is-removed.patch new file mode 100644 index 0000000..8656702 --- /dev/null +++ b/abs/core/qt/fix-scroll-when-last-item-is-removed.patch @@ -0,0 +1,38 @@ +From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001 +From: Frank Reininghaus <frank78ac@googlemail.com> +Date: Wed, 22 Sep 2010 10:19:59 +0200 +Subject: [PATCH] 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> +--- + src/gui/itemviews/qtreeview.cpp | 4 ++++ + tests/auto/qtreeview/tst_qtreeview.cpp | 22 ++++++++++++++++++++++ + 2 files changed, 26 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) +-- +1.6.1 + |