summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppfindreferences.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-11-04 12:02:19 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2009-11-04 12:48:36 +0100
commit7cffef17aa55479c34c022bb9dd0852cb82abb24 (patch)
treeb9657e5995651a21c703ccba511f1a28588db15c /src/plugins/cpptools/cppfindreferences.cpp
parent6043c639e369c4f233d9c6e0cffe8f3546162624 (diff)
downloadqt-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.cpp16
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);