|
Rex Dieter |
0aff623 |
From 6d76e943dab0971d376cebb15fe531efc60622ac Mon Sep 17 00:00:00 2001
|
|
Rex Dieter |
0aff623 |
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
Rex Dieter |
0aff623 |
Date: Mon, 5 May 2014 10:59:56 +0200
|
|
Rex Dieter |
0aff623 |
Subject: [PATCH 25/37] Fix visual index lookup in
|
|
Rex Dieter |
0aff623 |
QTreeViewPrivate::adjustViewOptionsForIndex().
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
Determine the visual index by looking up the column of the QModelIndex
|
|
Rex Dieter |
0aff623 |
in the logicalIndices array instead of looping.
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
Task-number: QTBUG-37813
|
|
Rex Dieter |
0aff623 |
Change-Id: I5c3c73c67537877b03cdc2c36a52041d99f7f49d
|
|
Rex Dieter |
0aff623 |
Reviewed-by: David Faure <david.faure@kdab.com>
|
|
Rex Dieter |
0aff623 |
(cherry picked from qtbase/85aef2dd4b059d2ba9cba4605d9fef87f3e2c4fc)
|
|
Rex Dieter |
0aff623 |
---
|
|
Rex Dieter |
0aff623 |
src/gui/itemviews/qtreeview.cpp | 11 ++---------
|
|
Rex Dieter |
0aff623 |
tests/auto/qtreeview/tst_qtreeview.cpp | 27 +++++++++++++++++++++++++++
|
|
Rex Dieter |
0aff623 |
2 files changed, 29 insertions(+), 9 deletions(-)
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
|
|
Rex Dieter |
0aff623 |
index f506f48..fdf020e 100644
|
|
Rex Dieter |
0aff623 |
--- a/src/gui/itemviews/qtreeview.cpp
|
|
Rex Dieter |
0aff623 |
+++ b/src/gui/itemviews/qtreeview.cpp
|
|
Rex Dieter |
0aff623 |
@@ -1367,15 +1367,8 @@ void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItemV4 *option,
|
|
Rex Dieter |
0aff623 |
const int right = (spanning ? header->visualIndex(0) : header->count() - 1 );
|
|
Rex Dieter |
0aff623 |
calcLogicalIndices(&logicalIndices, &viewItemPosList, left, right);
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
- int columnIndex = 0;
|
|
Rex Dieter |
0aff623 |
- for (int visualIndex = 0; visualIndex < current.column(); ++visualIndex) {
|
|
Rex Dieter |
0aff623 |
- int logicalIndex = header->logicalIndex(visualIndex);
|
|
Rex Dieter |
0aff623 |
- if (!header->isSectionHidden(logicalIndex)) {
|
|
Rex Dieter |
0aff623 |
- ++columnIndex;
|
|
Rex Dieter |
0aff623 |
- }
|
|
Rex Dieter |
0aff623 |
- }
|
|
Rex Dieter |
0aff623 |
-
|
|
Rex Dieter |
0aff623 |
- option->viewItemPosition = viewItemPosList.at(columnIndex);
|
|
Rex Dieter |
0aff623 |
+ const int visualIndex = logicalIndices.indexOf(current.column());
|
|
Rex Dieter |
0aff623 |
+ option->viewItemPosition = viewItemPosList.at(visualIndex);
|
|
Rex Dieter |
0aff623 |
}
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
|
|
Rex Dieter |
0aff623 |
--
|
|
Rex Dieter |
0aff623 |
1.9.3
|
|
Rex Dieter |
0aff623 |
|