forked from qt-creator/qt-creator
LanguageClient: prevent multiple TextEditorWidget connections
Change-Id: I97c7cb00bad898cc5f698bd3dcee23e44acfa9e2 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -707,13 +707,14 @@ void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
|
|||||||
timer = new QTimer;
|
timer = new QTimer;
|
||||||
timer->setSingleShot(true);
|
timer->setSingleShot(true);
|
||||||
m_documentHighlightsTimer.insert(widget, timer);
|
m_documentHighlightsTimer.insert(widget, timer);
|
||||||
connect(timer, &QTimer::timeout, this, [this, widget]() {
|
auto connection = connect(widget, &QWidget::destroyed, this, [widget, this]() {
|
||||||
|
delete m_documentHighlightsTimer.take(widget);
|
||||||
|
});
|
||||||
|
connect(timer, &QTimer::timeout, this, [this, widget, connection]() {
|
||||||
|
disconnect(connection);
|
||||||
requestDocumentHighlights(widget);
|
requestDocumentHighlights(widget);
|
||||||
m_documentHighlightsTimer.take(widget)->deleteLater();
|
m_documentHighlightsTimer.take(widget)->deleteLater();
|
||||||
});
|
});
|
||||||
connect(widget, &QWidget::destroyed, this, [widget, this]() {
|
|
||||||
delete m_documentHighlightsTimer.take(widget);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
const Id selectionsId(TextEditor::TextEditorWidget::CodeSemanticsSelection);
|
const Id selectionsId(TextEditor::TextEditorWidget::CodeSemanticsSelection);
|
||||||
const QList semanticSelections = widget->extraSelections(selectionsId);
|
const QList semanticSelections = widget->extraSelections(selectionsId);
|
||||||
|
|||||||
Reference in New Issue
Block a user