diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-11-04 12:02:19 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-11-04 12:48:36 +0100 |
commit | 7cffef17aa55479c34c022bb9dd0852cb82abb24 (patch) | |
tree | b9657e5995651a21c703ccba511f1a28588db15c /src/plugins/cpptools/cppfindreferences.cpp | |
parent | 6043c639e369c4f233d9c6e0cffe8f3546162624 (diff) | |
download | qt-creator-7cffef17aa55479c34c022bb9dd0852cb82abb24.tar.gz |
Paranoia check. Skip the change if we have another change with the same offset.
Diffstat (limited to 'src/plugins/cpptools/cppfindreferences.cpp')
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 01f7668d7d..054359c85d 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -249,7 +249,21 @@ static void applyChanges(QTextDocument *doc, const QString &text, const QList<Fi foreach (const Find::SearchResultItem &item, items) { const int blockNumber = item.lineNumber - 1; QTextCursor tc(doc->findBlockByNumber(blockNumber)); - tc.setPosition(tc.position() + item.searchTermStart); + + const int cursorPosition = tc.position() + item.searchTermStart; + + int cursorIndex = 0; + for (; cursorIndex < cursors.size(); ++cursorIndex) { + const QTextCursor &tc = cursors.at(cursorIndex); + + if (tc.position() == cursorPosition) + break; + } + + if (cursorIndex != cursors.size()) + continue; // skip this change. + + tc.setPosition(cursorPosition); tc.setPosition(tc.position() + item.searchTermLength, QTextCursor::KeepAnchor); cursors.append(tc); |