summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextdocument.cpp
diff options
context:
space:
mode:
authorSamuel Gaist <samuel.gaist@edeltech.ch>2014-11-29 00:28:10 +0100
committerKonstantin Ritt <ritt.ks@gmail.com>2014-12-12 06:59:50 +0100
commita3640ac2606b66012faf7f32c7d26a8d7f508bef (patch)
tree64409aab176e9fd64dde996d8384ca0d338ad6c3 /src/gui/text/qtextdocument.cpp
parent517da68893be9e6d97c7993922c573de9560604d (diff)
QTextDocument QRegularExpression search cleanup
Code cleanup and improvement Change-Id: I04109e6eaa24e90e24ba89957adca32281d077dc Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src/gui/text/qtextdocument.cpp')
-rw-r--r--src/gui/text/qtextdocument.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index 2eb6f232fb..a3dc1f39c4 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -1516,13 +1516,11 @@ static bool findInBlock(const QTextBlock &block, const QRegularExpression &expre
}
}
//we have a hit, return the cursor for that.
- break;
+ *cursor = QTextCursor(block.docHandle(), block.position() + idx);
+ cursor->setPosition(cursor->position() + match.capturedLength(), QTextCursor::KeepAnchor);
+ return true;
}
- if (idx == -1)
- return false;
- *cursor = qMove(QTextCursor(block.docHandle(), block.position() + idx));
- cursor->setPosition(cursor->position() + match.capturedLength(), QTextCursor::KeepAnchor);
- return true;
+ return false;
}
/*!
@@ -1557,17 +1555,16 @@ QTextCursor QTextDocument::find(const QRegularExpression &expr, int from, FindFl
QTextCursor cursor;
QTextBlock block = d->blocksFind(pos);
+ int blockOffset = pos - block.position();
if (!(options & FindBackward)) {
- int blockOffset = qMax(0, pos - block.position());
while (block.isValid()) {
if (findInBlock(block, expr, blockOffset, options, &cursor))
return cursor;
- blockOffset = 0;
block = block.next();
+ blockOffset = 0;
}
} else {
- int blockOffset = pos - block.position();
while (block.isValid()) {
if (findInBlock(block, expr, blockOffset, options, &cursor))
return cursor;