LanguageClient: Add action to restart client to editor toolbar

Change-Id: Ib2fb0f6d9a5b3baeac937f298670887fa704ddce
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2023-01-09 14:37:19 +01:00
parent e193d02a72
commit d62d39642e
3 changed files with 26 additions and 3 deletions

View File

@@ -106,6 +106,13 @@ void LanguageClient::LanguageClientManager::addClient(Client *client)
emit managerInstance->clientAdded(client);
}
void LanguageClientManager::restartClient(Client *client)
{
QTC_ASSERT(managerInstance, return);
managerInstance->m_restartingClients.insert(client);
shutdownClient(client);
}
void LanguageClientManager::clientStarted(Client *client)
{
qCDebug(Log) << "client started: " << client->name() << client;
@@ -127,6 +134,13 @@ void LanguageClientManager::clientStarted(Client *client)
void LanguageClientManager::clientFinished(Client *client)
{
QTC_ASSERT(managerInstance, return);
if (managerInstance->m_restartingClients.remove(client)) {
client->reset();
client->start();
return;
}
constexpr int restartTimeoutS = 5;
const bool unexpectedFinish = client->state() != Client::Shutdown
&& client->state() != Client::ShutdownRequested;