diff options
Diffstat (limited to 'src/plugins/clangcodemodel/clangbackendreceiver.cpp')
-rw-r--r-- | src/plugins/clangcodemodel/clangbackendreceiver.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/plugins/clangcodemodel/clangbackendreceiver.cpp b/src/plugins/clangcodemodel/clangbackendreceiver.cpp index 39edf46c44..f9cf7badea 100644 --- a/src/plugins/clangcodemodel/clangbackendreceiver.cpp +++ b/src/plugins/clangcodemodel/clangbackendreceiver.cpp @@ -84,6 +84,18 @@ void BackendReceiver::addExpectedCompletionsMessage( m_assistProcessorsTable.insert(ticket, processor); } +void BackendReceiver::cancelProcessor(TextEditor::IAssistProcessor *processor) +{ + for (auto it = m_assistProcessorsTable.cbegin(), end = m_assistProcessorsTable.cend(); + it != end; ++it) + { + if (it.value() == processor) { + m_assistProcessorsTable.erase(it); + return; + } + } +} + void BackendReceiver::deleteProcessorsOfEditorWidget(TextEditor::TextEditorWidget *textEditorWidget) { QList<quint64> toRemove; @@ -147,10 +159,8 @@ bool BackendReceiver::isExpectingCompletionsMessage() const void BackendReceiver::reset() { // Clean up waiting assist processors - for (ClangCompletionAssistProcessor *processor : m_assistProcessorsTable) { + for (ClangCompletionAssistProcessor *processor : m_assistProcessorsTable) processor->setAsyncProposalAvailable(nullptr); - delete processor; - } m_assistProcessorsTable.clear(); // Clean up futures for references; TODO: Remove duplication @@ -190,8 +200,7 @@ void BackendReceiver::completions(const CompletionsMessage &message) << "items"; const quint64 ticket = message.ticketNumber; - QScopedPointer<ClangCompletionAssistProcessor> processor(m_assistProcessorsTable.take(ticket)); - if (processor) + if (ClangCompletionAssistProcessor *processor = m_assistProcessorsTable.take(ticket)) processor->handleAvailableCompletions(message.codeCompletions); } @@ -328,7 +337,7 @@ static CppTools::ToolTipInfo toToolTipInfo(const ToolTipMessage &message) info.qDocIdCandidates = toStringList(backendInfo.qdocIdCandidates); info.qDocMark = backendInfo.qdocMark; info.qDocCategory = toHelpItemCategory(backendInfo.qdocCategory); - + info.value = backendInfo.value; info.sizeInBytes = backendInfo.sizeInBytes; return info; |