summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-08-22 16:18:11 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-22 18:40:17 +0200
commit1839151992b7491508fc7ca726242b64562bf1a0 (patch)
tree85c108321505e2824bc30b5b2d1f5b0a64e45557 /src/widgets
parent0c955b49760519f0a22f07966eb2e27d2e02c6e2 (diff)
Make keyboard search work in the current column, not only the first.
Task-number: QTBUG-26540 Change-Id: I1c365aeb013f5ddedd0589aa4c4844be759a3882 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/itemviews/qtreeview.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp
index 18c33b68e7..2a4ffb4780 100644
--- a/src/widgets/itemviews/qtreeview.cpp
+++ b/src/widgets/itemviews/qtreeview.cpp
@@ -1003,6 +1003,8 @@ void QTreeView::keyboardSearch(const QString &search)
for (int i = 0; i < d->viewItems.count(); ++i) {
if ((int)d->viewItems.at(i).level > previousLevel) {
QModelIndex searchFrom = d->viewItems.at(i).index;
+ if (start.column() > 0)
+ searchFrom = searchFrom.sibling(searchFrom.row(), start.column());
if (searchFrom.parent() == start.parent())
searchFrom = start;
QModelIndexList match = d->model->match(searchFrom, Qt::DisplayRole, searchString);
@@ -1023,6 +1025,9 @@ void QTreeView::keyboardSearch(const QString &search)
else if (bestAbove > -1)
index = d->viewItems.at(bestAbove).index;
+ if (start.column() > 0)
+ index = index.sibling(index.row(), start.column());
+
if (index.isValid()) {
QItemSelectionModel::SelectionFlags flags = (d->selectionMode == SingleSelection
? QItemSelectionModel::SelectionFlags(