From 8121575067f4f0c48de7ca8e9444e3562e4655af Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 12 May 2023 11:50:51 +0200 Subject: Core: Fix item view find ...when there is only one matching item and we are starting search from there. Change-Id: Icfffd37d9330c83058fb81356762e72b183f24e8 Reviewed-by: Eike Ziller Reviewed-by: Qt CI Bot --- src/plugins/coreplugin/find/itemviewfind.cpp | 11 +++++++++-- 1 file 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); -- cgit v1.2.1