summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextdocument.cpp
diff options
context:
space:
mode:
authorSamuel Gaist <samuel.gaist@edeltech.ch>2014-11-29 00:26:49 +0100
committerKonstantin Ritt <ritt.ks@gmail.com>2014-12-12 06:59:53 +0100
commit1add31da9e42e1976d8fd805d67f95128476082b (patch)
tree9fba92cf1c489088e7a75853c979fd92c04629de /src/gui/text/qtextdocument.cpp
parenta3640ac2606b66012faf7f32c7d26a8d7f508bef (diff)
QTextDocument QRegExp search cleanup
Code cleanup and improvement Change-Id: Id4eac84dd31976797403c9acfa40c8d3337c6988 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src/gui/text/qtextdocument.cpp')
-rw-r--r--src/gui/text/qtextdocument.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index a3dc1f39c4..bd5877c924 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -1388,13 +1388,11 @@ static bool findInBlock(const QTextBlock &block, const QRegExp &expression, int
}
}
//we have a hit, return the cursor for that.
- break;
+ *cursor = QTextCursor(block.docHandle(), block.position() + idx);
+ cursor->setPosition(cursor->position() + expr.matchedLength(), QTextCursor::KeepAnchor);
+ return true;
}
- if (idx == -1)
- return false;
- *cursor = QTextCursor(block.docHandle(), block.position() + idx);
- cursor->setPosition(cursor->position() + expr.matchedLength(), QTextCursor::KeepAnchor);
- return true;
+ return false;
}
/*!
@@ -1430,17 +1428,15 @@ QTextCursor QTextDocument::find(const QRegExp & expr, int from, FindFlags option
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;