diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-08-22 16:18:11 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-22 18:40:17 +0200 |
commit | 1839151992b7491508fc7ca726242b64562bf1a0 (patch) | |
tree | 85c108321505e2824bc30b5b2d1f5b0a64e45557 /src/widgets/itemviews | |
parent | 0c955b49760519f0a22f07966eb2e27d2e02c6e2 (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/itemviews')
-rw-r--r-- | src/widgets/itemviews/qtreeview.cpp | 5 |
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( |