From 5ae67214a14937f7ba6b622cea5489c6c19c327c Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Thu, 1 Apr 2010 15:47:52 +0200 Subject: [PATCH] QmlJSEditor: Don't trigger a reparse when dependencies change. A semantic rehighlight suffices. This should avoid some parsing cycles introduced earlier. Reviewed-by: Roberto Raggi --- src/plugins/qmljseditor/qmljseditor.cpp | 7 ++++++- src/plugins/qmljseditor/qmljseditor.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 1212a7be59b..fd4a553e547 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -635,6 +635,11 @@ QmlJSTextEditor::QmlJSTextEditor(QWidget *parent) : m_updateUsesTimer->setSingleShot(true); connect(m_updateUsesTimer, SIGNAL(timeout()), this, SLOT(updateUsesNow())); + m_semanticRehighlightTimer = new QTimer(this); + m_semanticRehighlightTimer->setInterval(UPDATE_DOCUMENT_DEFAULT_INTERVAL); + m_semanticRehighlightTimer->setSingleShot(true); + connect(m_semanticRehighlightTimer, SIGNAL(timeout()), this, SLOT(semanticRehighlight())); + connect(this, SIGNAL(textChanged()), this, SLOT(updateDocument())); connect(this, SIGNAL(textChanged()), this, SLOT(updateUses())); @@ -753,7 +758,7 @@ void QmlJSTextEditor::onDocumentUpdated(QmlJS::Document::Ptr doc) || doc->documentRevision() != document()->revision()) { // didn't get the currently open, or an up to date document. // trigger a semantic rehighlight anyway, after a time - updateDocument(); + m_semanticRehighlightTimer->start(); return; } diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index 179934c9b48..5aefcab2690 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -260,6 +260,7 @@ private: QTimer *m_updateDocumentTimer; QTimer *m_updateUsesTimer; + QTimer *m_semanticRehighlightTimer; QComboBox *m_methodCombo; ModelManagerInterface *m_modelManager; QTextCharFormat m_occurrencesFormat; -- GitLab