apply upstream patch to fix QTreeView-regression
This commit is contained in:
parent
a4cb425a1d
commit
79a460b197
@ -0,0 +1,77 @@
|
||||
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)
|
||||
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
|
||||
index 7e2e800..c7b53e9 100644
|
||||
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
|
||||
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
|
||||
@@ -240,6 +240,7 @@ private slots:
|
||||
void taskQTBUG_6450_selectAllWith1stColumnHidden();
|
||||
void taskQTBUG_9216_setSizeAndUniformRowHeightsWrongRepaint();
|
||||
void taskQTBUG_11466_keyboardNavigationRegression();
|
||||
+ void taskQTBUG_13567_removeLastItemRegression();
|
||||
};
|
||||
|
||||
class QtTestModel: public QAbstractItemModel
|
||||
@@ -3910,5 +3911,26 @@ void tst_QTreeView::taskQTBUG_11466_keyboardNavigationRegression()
|
||||
QTRY_COMPARE(treeView.currentIndex(), treeView.selectionModel()->selection().indexes().first());
|
||||
}
|
||||
|
||||
+void tst_QTreeView::taskQTBUG_13567_removeLastItemRegression()
|
||||
+{
|
||||
+ QtTestModel model(200, 1);
|
||||
+
|
||||
+ QTreeView view;
|
||||
+ view.setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||
+ view.setModel(&model);
|
||||
+ view.show();
|
||||
+ QTest::qWaitForWindowShown(&view);
|
||||
+
|
||||
+ view.scrollToBottom();
|
||||
+ QTest::qWait(10);
|
||||
+ CHECK_VISIBLE(199, 0);
|
||||
+
|
||||
+ view.setCurrentIndex(model.index(199, 0));
|
||||
+ model.removeLastRow();
|
||||
+ QTest::qWait(10);
|
||||
+ QCOMPARE(view.currentIndex(), model.index(198, 0));
|
||||
+ CHECK_VISIBLE(198, 0);
|
||||
+}
|
||||
+
|
||||
QTEST_MAIN(tst_QTreeView)
|
||||
#include "tst_qtreeview.moc"
|
||||
--
|
||||
1.6.1
|
||||
|
7
qt.spec
7
qt.spec
@ -18,7 +18,7 @@ Summary: Qt toolkit
|
||||
Name: qt
|
||||
Epoch: 1
|
||||
Version: 4.7.0
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
|
||||
@ -82,6 +82,7 @@ Patch62: qt-4.6.3-indic-rendering-bz636399.patch
|
||||
# security patches
|
||||
|
||||
# upstream patches
|
||||
Patch100: qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch
|
||||
|
||||
# kde-qt git patches
|
||||
Patch202: 0002-This-patch-makes-override-redirect-windows-popup-men.patch
|
||||
@ -435,6 +436,7 @@ Qt libraries used for drawing widgets and OpenGL items.
|
||||
# security fixes
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .QTBUG-13567-QTreeView
|
||||
|
||||
# kde-qt branch
|
||||
%if 0%{?kde_qt}
|
||||
@ -1095,6 +1097,9 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Sep 27 2010 Than Ngo <than@redhat.com> - 4.7.0-4
|
||||
- apply upstream patch to fix QTreeView-regression
|
||||
|
||||
* Thu Sep 23 2010 Than Ngo <than@redhat.com> - 4.7.0-3
|
||||
- fix typo in license
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user