Force an update of the current editor.

This commit is contained in:
Roberto Raggi
2010-08-03 11:53:01 +02:00
parent 3a5ebf2b4a
commit 1488062a88
4 changed files with 22 additions and 3 deletions

View File

@@ -578,6 +578,12 @@ void CPPEditor::abortRename()
setExtraSelections(CodeSemanticsSelection, m_renameSelections);
}
void CPPEditor::rehighlight(bool force)
{
const SemanticHighlighter::Source source = currentSource(force);
m_semanticHighlighter->rehighlight(source);
}
void CPPEditor::onDocumentUpdated(Document::Ptr doc)
{
if (doc->fileName() != file()->fileName())
@@ -588,9 +594,7 @@ void CPPEditor::onDocumentUpdated(Document::Ptr doc)
if (! m_initialized) {
m_initialized = true;
const SemanticHighlighter::Source source = currentSource(/*force = */ true);
m_semanticHighlighter->rehighlight(source);
rehighlight(/* force = */ true);
}
m_updateOutlineTimer->start();

View File

@@ -194,6 +194,7 @@ public Q_SLOTS:
void findUsages();
void renameUsagesNow(const QString &replacement = QString());
void hideRenameNotification();
void rehighlight(bool force = false);
protected:
bool event(QEvent *e);

View File

@@ -302,6 +302,9 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
this, SLOT(onTaskStarted(QString)));
connect(core->progressManager(), SIGNAL(allTasksFinished(QString)),
this, SLOT(onAllTasksFinished(QString)));
connect(core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(currentEditorChanged(Core::IEditor*)));
readSettings();
return true;
}
@@ -400,4 +403,14 @@ void CppPlugin::onAllTasksFinished(const QString &type)
}
}
void CppPlugin::currentEditorChanged(Core::IEditor *editor)
{
if (! editor)
return;
else if (CPPEditor *textEditor = qobject_cast<CPPEditor *>(editor->widget())) {
textEditor->rehighlight(/*force = */ true);
}
}
Q_EXPORT_PLUGIN(CppPlugin)

View File

@@ -84,6 +84,7 @@ private slots:
void findUsages();
void quickFix(TextEditor::ITextEditable *editable);
void quickFixNow();
void currentEditorChanged(Core::IEditor *editor);
private:
Core::IEditor *createEditor(QWidget *parent);