diff --git a/src/plugins/coreplugin/find/itemviewfind.cpp b/src/plugins/coreplugin/find/itemviewfind.cpp index c1c6e84f936..8bba18ae692 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);