From 780abd0d4b3b4e2face7231dbd01eeb1a38de238 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Fri, 10 Jul 2009 13:57:21 +0200 Subject: [PATCH] Store the document's revision used to compute the warning/error marks. --- src/plugins/cpptools/cppmodelmanager.cpp | 4 ++++ src/plugins/cpptools/cppmodelmanager.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 0dad0252894..be6aa86093a 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -1316,6 +1316,7 @@ void CppModelManager::onDocumentUpdated(Document::Ptr doc) } Editor e; + e.revision = ed->document()->revision(); e.textEditor = textEditor; e.selections = selections; e.ifdefedOutBlocks = blockRanges; @@ -1340,8 +1341,11 @@ void CppModelManager::updateEditorSelections() TextEditor::ITextEditor *textEditor = ed.textEditor; TextEditor::BaseTextEditor *editor = qobject_cast<TextEditor::BaseTextEditor *>(textEditor->widget()); + if (! editor) continue; + else if (editor->document()->revision() != ed.revision) + continue; // outdated editor->setExtraSelections(TextEditor::BaseTextEditor::CodeWarningsSelection, ed.selections); diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index 0cc98d06a8e..40a492b27ca 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -176,6 +176,9 @@ private: mutable QMutex protectSnapshot; struct Editor { + Editor() + : revision(-1) {} + int revision; QPointer<TextEditor::ITextEditor> textEditor; QList<QTextEdit::ExtraSelection> selections; QList<TextEditor::BaseTextEditor::BlockRange> ifdefedOutBlocks; -- GitLab