summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2023-05-12 11:50:51 +0200
committerChristian Stenger <christian.stenger@qt.io>2023-05-17 11:40:01 +0000
commit8121575067f4f0c48de7ca8e9444e3562e4655af (patch)
tree078bb28852ccf78fe6966c00548f4635fd016f5b /src
parent95d21f396675df1efc1eb16a825c39981b6ea22b (diff)
downloadqt-creator-8121575067f4f0c48de7ca8e9444e3562e4655af.tar.gz
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 <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src')
-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);