From 333374e6a9f54e97fa6507cae95b8604d30912e0 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 11 Nov 2021 14:31:22 +0100 Subject: [PATCH] LanguageClient: move remove project connection to client Change-Id: I63ff089c7b72a4f72ddf65548dc8df1cc6763ff9 Reviewed-by: Christian Kandeler --- src/plugins/languageclient/client.cpp | 3 +++ src/plugins/languageclient/languageclientmanager.cpp | 9 +-------- src/plugins/languageclient/languageclientmanager.h | 1 - 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 2fa2fdec0bf..d088aa6903f 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -87,6 +87,7 @@ Client::Client(BaseClientInterface *clientInterface) , m_symbolSupport(this) , m_tokenSupport(this) { + using namespace ProjectExplorer; m_clientProviders.completionAssistProvider = new LanguageClientCompletionAssistProvider(this); m_clientProviders.functionHintProvider = new FunctionHintAssistProvider(this); m_clientProviders.quickFixAssistProvider = new LanguageClientQuickFixProvider(this); @@ -95,6 +96,8 @@ Client::Client(BaseClientInterface *clientInterface) m_documentUpdateTimer.setInterval(500); connect(&m_documentUpdateTimer, &QTimer::timeout, this, [this] { sendPostponedDocumentUpdates(Schedule::Now); }); + connect(SessionManager::instance(), &SessionManager::projectRemoved, + this, &Client::projectClosed); m_contentHandler.insert(JsonRpcMessageHandler::jsonRpcMimeType(), &JsonRpcMessageHandler::parseContent); diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 4e306785821..9d89446151c 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -86,7 +86,7 @@ LanguageClientManager::LanguageClientManager(QObject *parent) connect(SessionManager::instance(), &SessionManager::projectAdded, this, &LanguageClientManager::projectAdded); connect(SessionManager::instance(), &SessionManager::projectRemoved, - this, &LanguageClientManager::projectRemoved); + this, [&](Project *project) { project->disconnect(this); }); } LanguageClientManager::~LanguageClientManager() @@ -605,11 +605,4 @@ void LanguageClientManager::projectAdded(ProjectExplorer::Project *project) }); } -void LanguageClientManager::projectRemoved(ProjectExplorer::Project *project) -{ - project->disconnect(this); - for (Client *client : qAsConst(m_clients)) - client->projectClosed(project); -} - } // namespace LanguageClient diff --git a/src/plugins/languageclient/languageclientmanager.h b/src/plugins/languageclient/languageclientmanager.h index e9efd8108e7..e585d0dd8c6 100644 --- a/src/plugins/languageclient/languageclientmanager.h +++ b/src/plugins/languageclient/languageclientmanager.h @@ -116,7 +116,6 @@ private: void updateProject(ProjectExplorer::Project *project); void projectAdded(ProjectExplorer::Project *project); - void projectRemoved(ProjectExplorer::Project *project); QVector reachableClients();