forked from qt-creator/qt-creator
TextEditor: optimize setting refactor markers
emitting requestBlockUpdate is not for free so limitting it to blocks that have changed improve the performance notable for documents with a lot of refactoring markers. Change-Id: Ie288a367d1d1d6a9f4359e37ff8486a1dfe36752 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -202,8 +202,7 @@ public:
|
||||
for (Core::IEditor *editor : editors) {
|
||||
if (auto textEditor = qobject_cast<BaseTextEditor *>(editor)) {
|
||||
TextEditorWidget *widget = textEditor->editorWidget();
|
||||
widget->setRefactorMarkers(
|
||||
RefactorMarker::filterOutType(widget->refactorMarkers(), m_id));
|
||||
widget->clearRefactorMarkers(m_id);
|
||||
widget->removeHoverHandler(&m_hoverHandler);
|
||||
}
|
||||
}
|
||||
@@ -910,8 +909,7 @@ void Client::deactivateDocument(TextEditor::TextDocument *document)
|
||||
TextEditor::TextEditorWidget *widget = textEditor->editorWidget();
|
||||
widget->removeHoverHandler(&d->m_hoverHandler);
|
||||
widget->setExtraSelections(TextEditor::TextEditorWidget::CodeSemanticsSelection, {});
|
||||
widget->setRefactorMarkers(
|
||||
TextEditor::RefactorMarker::filterOutType(widget->refactorMarkers(), id()));
|
||||
widget->clearRefactorMarkers(id());
|
||||
updateEditorToolBar(editor);
|
||||
}
|
||||
}
|
||||
@@ -1158,7 +1156,7 @@ void Client::documentContentsChanged(TextEditor::TextDocument *document,
|
||||
TextEditorWidget *widget = editor->editorWidget();
|
||||
QTC_ASSERT(widget, continue);
|
||||
delete d->m_documentHighlightsTimer.take(widget);
|
||||
widget->setRefactorMarkers(RefactorMarker::filterOutType(widget->refactorMarkers(), id()));
|
||||
widget->clearRefactorMarkers(id());
|
||||
}
|
||||
d->m_documentUpdateTimer.start();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user