summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolseditorsupport.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-03-24 15:53:39 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2010-03-24 15:54:13 +0100
commit645cfb59ba156fd3cdfd5b3a64f9f61b7d6ff250 (patch)
treebcf33aa7f0c6fa61f418bebac56a81c679c70873 /src/plugins/cpptools/cpptoolseditorsupport.cpp
parent7e5902f385319ae20b52784250072495caaa2d97 (diff)
downloadqt-creator-645cfb59ba156fd3cdfd5b3a64f9f61b7d6ff250.tar.gz
Ignore outdated parsing requests.
Diffstat (limited to 'src/plugins/cpptools/cpptoolseditorsupport.cpp')
-rw-r--r--src/plugins/cpptools/cpptoolseditorsupport.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 83f1becd5a..f14b3174cd 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -49,6 +49,8 @@ CppEditorSupport::CppEditorSupport(CppModelManager *modelManager)
_modelManager(modelManager),
_updateDocumentInterval(UPDATE_DOCUMENT_DEFAULT_INTERVAL)
{
+ _revision = 0;
+
_updateDocumentTimer = new QTimer(this);
_updateDocumentTimer->setSingleShot(true);
_updateDocumentTimer->setInterval(_updateDocumentInterval);
@@ -102,6 +104,8 @@ void CppEditorSupport::setUpdateDocumentInterval(int updateDocumentInterval)
void CppEditorSupport::updateDocument()
{
+ _revision = editorRevision();
+
if (TextEditor::BaseTextEditor *edit = qobject_cast<TextEditor::BaseTextEditor*>(_textEditor->widget())) {
const QList<QTextEdit::ExtraSelection> selections =
edit->extraSelections(TextEditor::BaseTextEditor::CodeWarningsSelection);
@@ -114,7 +118,7 @@ void CppEditorSupport::updateDocument()
void CppEditorSupport::updateDocumentNow()
{
- if (_documentParser.isRunning()) {
+ if (_documentParser.isRunning() || _revision != editorRevision()) {
_updateDocumentTimer->start(_updateDocumentInterval);
} else {
_updateDocumentTimer->stop();