summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/coreplugin/find/itemviewfind.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/coreplugin/find/itemviewfind.cpp b/src/plugins/coreplugin/find/itemviewfind.cpp
index c1c6e84f93..8bba18ae69 100644
--- a/src/plugins/coreplugin/find/itemviewfind.cpp
+++ b/src/plugins/coreplugin/find/itemviewfind.cpp
@@ -203,11 +203,18 @@ IFindSupport::Result ItemViewFind::find(const QString &searchTxt,
index, d->m_role).toString();
if (d->m_view->model()->flags(index) & Qt::ItemIsSelectable
&& (index.row() != currentRow || index.parent() != currentIndex.parent())
- && text.indexOf(searchExpr) != -1)
+ && text.indexOf(searchExpr) != -1) {
resultIndex = index;
+ break;
+ }
}
index = followingIndex(index, backward, &stepWrapped);
- } while (!resultIndex.isValid() && index.isValid() && index != currentIndex);
+ if (index == currentIndex) { // we're back where we started
+ if (d->m_view->model()->data(index, d->m_role).toString().indexOf(searchExpr) != -1)
+ resultIndex = index;
+ break;
+ }
+ } while (index.isValid());
if (resultIndex.isValid()) {
d->m_view->setCurrentIndex(resultIndex);