LanguageClient: remove friend relationship between manager and plugin

Change-Id: I594d62615f365db34174c4bd1e6c8a9f6aeb545a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2019-03-27 14:05:30 +01:00
parent 0161729c23
commit 37d0525953
4 changed files with 58 additions and 25 deletions

View File

@@ -25,18 +25,37 @@
#include "languageclientplugin.h"
#include "languageclientmanager.h"
#include "client.h"
namespace LanguageClient {
static LanguageClientPlugin *m_instance = nullptr;
LanguageClientPlugin::LanguageClientPlugin()
{
m_instance = this;
}
LanguageClientPlugin::~LanguageClientPlugin()
{
m_instance = nullptr;
}
LanguageClientPlugin *LanguageClientPlugin::instance()
{
return m_instance;
}
bool LanguageClientPlugin::initialize(const QStringList & /*arguments*/, QString * /*errorString*/)
{
LanguageClientManager::init();
return true;
}
void LanguageClientPlugin::extensionsInitialized()
{
LanguageClientManager::init();
LanguageClientSettings::init();
}
@@ -45,6 +64,8 @@ ExtensionSystem::IPlugin::ShutdownFlag LanguageClientPlugin::aboutToShutdown()
LanguageClientManager::shutdown();
if (LanguageClientManager::clients().isEmpty())
return ExtensionSystem::IPlugin::SynchronousShutdown;
QTC_ASSERT(LanguageClientManager::instance(),
return ExtensionSystem::IPlugin::SynchronousShutdown);
connect(LanguageClientManager::instance(), &LanguageClientManager::shutdownFinished,
this, &ExtensionSystem::IPlugin::asynchronousShutdownFinished);
return ExtensionSystem::IPlugin::AsynchronousShutdown;