forked from qt-creator/qt-creator
Find: Do not try to show weird control characters in results
Replace all non-printable characters by question marks for display purposes. Fixes: QTCREATORBUG-9108 Change-Id: I81d31880dd5b1b2f9dea66acfdbe78ce89e685ca Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -231,6 +231,17 @@ void BaseFileFind::setCurrentSearchEngine(int index)
|
||||
emit currentSearchEngineChanged();
|
||||
}
|
||||
|
||||
static QString displayText(const QString &line)
|
||||
{
|
||||
QString result = line;
|
||||
auto end = result.end();
|
||||
for (auto it = result.begin(); it != end; ++it) {
|
||||
if (!it->isPrint())
|
||||
*it = QChar('?');
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static void displayResult(QFutureWatcher<FileSearchResultList> *watcher,
|
||||
SearchResult *search, int index)
|
||||
{
|
||||
@@ -240,7 +251,7 @@ static void displayResult(QFutureWatcher<FileSearchResultList> *watcher,
|
||||
SearchResultItem item;
|
||||
item.setFilePath(Utils::FilePath::fromString(result.fileName));
|
||||
item.setMainRange(result.lineNumber, result.matchStart, result.matchLength);
|
||||
item.setLineText(result.matchingLine);
|
||||
item.setLineText(displayText(result.matchingLine));
|
||||
item.setUseTextEditorFont(true);
|
||||
item.setUserData(result.regexpCapturedTexts);
|
||||
items << item;
|
||||
|
Reference in New Issue
Block a user