diff options
author | Christian Stenger <christian.stenger@qt.io> | 2023-05-12 11:50:51 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2023-05-17 11:40:01 +0000 |
commit | 8121575067f4f0c48de7ca8e9444e3562e4655af (patch) | |
tree | 078bb28852ccf78fe6966c00548f4635fd016f5b /src | |
parent | 95d21f396675df1efc1eb16a825c39981b6ea22b (diff) | |
download | qt-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.cpp | 11 |
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); |