TextEditor: Reuse searchInContents()

Change-Id: I08403d05830232becf7e5329339aaecf288894b7
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Jarek Kobus
2023-05-22 15:44:19 +02:00
parent 7830bb6bc4
commit bd48121a88
2 changed files with 8 additions and 28 deletions

View File

@@ -194,8 +194,8 @@ static SearchResultItems searchInContents(const QFuture<void> &future, const QSt
return searchWithoutRegExp(future, searchTerm, flags, filePath, contents); return searchWithoutRegExp(future, searchTerm, flags, filePath, contents);
} }
void searchInContents(QPromise<SearchResultItems> &promise, const QString &searchTerm, void Utils::searchInContents(QPromise<SearchResultItems> &promise, const QString &searchTerm,
FindFlags flags, const FilePath &filePath, const QString &contents) FindFlags flags, const FilePath &filePath, const QString &contents)
{ {
const QFuture<void> future(promise.future()); const QFuture<void> future(promise.future());
const SearchResultItems results = searchInContents(future, searchTerm, flags, filePath, const SearchResultItems results = searchInContents(future, searchTerm, flags, filePath,

View File

@@ -48,6 +48,7 @@
#include <coreplugin/manhattanstyle.h> #include <coreplugin/manhattanstyle.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/async.h>
#include <utils/camelcasecursor.h> #include <utils/camelcasecursor.h>
#include <utils/dropsupport.h> #include <utils/dropsupport.h>
#include <utils/executeondestruction.h> #include <utils/executeondestruction.h>
@@ -895,19 +896,9 @@ void TextEditorWidgetFind::selectAll(const QString &txt, FindFlags findFlags)
m_editor->setFocus(); m_editor->setFocus();
}); });
const FilePath &fileName = m_editor->textDocument()->filePath(); m_selectWatcher->setFuture(Utils::asyncRun(Utils::searchInContents, txt, findFlags,
QMap<FilePath, QString> fileToContentsMap; m_editor->textDocument()->filePath(),
fileToContentsMap[fileName] = m_editor->textDocument()->plainText(); m_editor->textDocument()->plainText()));
FileListIterator *it = new FileListIterator({fileName},
{const_cast<QTextCodec *>(
m_editor->textDocument()->codec())});
const QTextDocument::FindFlags findFlags2 = Utils::textDocumentFlagsForFindFlags(findFlags);
if (findFlags & FindRegularExpression)
m_selectWatcher->setFuture(findInFilesRegExp(txt, it, findFlags2, fileToContentsMap));
else
m_selectWatcher->setFuture(findInFiles(txt, it, findFlags2, fileToContentsMap));
} }
void TextEditorWidgetFind::cancelCurrentSelectAll() void TextEditorWidgetFind::cancelCurrentSelectAll()
@@ -6743,19 +6734,8 @@ void TextEditorWidgetPrivate::highlightSearchResultsInScrollBar()
connect(m_searchWatcher, &QFutureWatcher<SearchResultItems>::finished, connect(m_searchWatcher, &QFutureWatcher<SearchResultItems>::finished,
this, &TextEditorWidgetPrivate::searchFinished); this, &TextEditorWidgetPrivate::searchFinished);
m_searchWatcher->setPendingResultsLimit(10); m_searchWatcher->setPendingResultsLimit(10);
m_searchWatcher->setFuture(Utils::asyncRun(Utils::searchInContents, txt, m_findFlags,
const QTextDocument::FindFlags findFlags = Utils::textDocumentFlagsForFindFlags(m_findFlags); m_document->filePath(), m_document->plainText()));
const FilePath &fileName = m_document->filePath();
FileListIterator *it =
new FileListIterator({fileName} , {const_cast<QTextCodec *>(m_document->codec())});
QMap<FilePath, QString> fileToContentsMap;
fileToContentsMap[fileName] = m_document->plainText();
if (m_findFlags & FindRegularExpression)
m_searchWatcher->setFuture(findInFilesRegExp(txt, it, findFlags, fileToContentsMap));
else
m_searchWatcher->setFuture(findInFiles(txt, it, findFlags, fileToContentsMap));
} }
void TextEditorWidgetPrivate::scheduleUpdateHighlightScrollBar() void TextEditorWidgetPrivate::scheduleUpdateHighlightScrollBar()