diff options
Diffstat (limited to 'debian/patches/0255-qtreeview-selection-columns-hidden.diff')
-rw-r--r-- | debian/patches/0255-qtreeview-selection-columns-hidden.diff | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/debian/patches/0255-qtreeview-selection-columns-hidden.diff b/debian/patches/0255-qtreeview-selection-columns-hidden.diff new file mode 100644 index 0000000..4a15b35 --- /dev/null +++ b/debian/patches/0255-qtreeview-selection-columns-hidden.diff @@ -0,0 +1,42 @@ +qt-bugs@ issue : N232819 +Trolltech task ID : 232831 +applied: no +author: Rafael Fernández López <ereslibre@kde.org> + +In a treeview with columns like this: + +Column 1 | Column 2 | ... | Column k | ... | Column n + +When selecting with rubberband (by clicking on the blank part of the viewport) while Column k is +hidden, you get double items on the selection model, when asking for selection(). This is becase +ranges are incorrectly calculated when there are hidden columns. A way to reproduce: + +Column 1 | Column 2 | Column 4 (Column 3 is hidden) + item + item + item + x <- press button here and move it up to select items (on this same column) + +If you do like this: + +Column 1 | Column 2 | Column 4 (Column 3 is hidden) + item + item + item + x <- press button here and move it up + +you won't be able to reproduce, since you need the hidden column to be between the one you click and +the last one. The reason is that columnRanges returns two ranges when there is supposed to return 1 +range (even when there are hidden columns). + +--- a/src/gui/itemviews/qtreeview.cpp ++++ b/src/gui/itemviews/qtreeview.cpp +@@ -3530,7 +3530,7 @@ QList<QPair<int, int> > QTreeViewPrivate + current.first = -2; // -1 is not enough because -1+1 = 0 + current.second = -2; + foreach(int logicalColumn, logicalIndexes) { +- if (current.second + 1 != logicalColumn) { ++ if (current.second + 1 != logicalColumn && !header->isSectionHidden(current.second + 1)) { + if (current.first != -2) { + //let's save the current one + ret += current; |