mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-06 00:57:32 +08:00
39 lines
1.4 KiB
Diff
39 lines
1.4 KiB
Diff
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
|
|
|