aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientmanager.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-02-25 13:30:20 +0100
committerDavid Schulz <david.schulz@qt.io>2020-02-25 13:17:13 +0000
commit8625bbfe5a7cd9de4139a5d80f3479386c8594bd (patch)
treea1a31119d21e7b2b0c927c84dedf79a7a16fa761 /src/plugins/languageclient/languageclientmanager.cpp
parent45381e9d04c7494978dd5cc6a5854a704ef039ba (diff)
LanguageClient: Fix client restart after crash
Do not clear open documents but disconnect and deactivate them, so they can be correctly reopened once the server is restarted. Change-Id: I0f61a5461c020865e61d9808e8c645ea842f64ad Fixes: QTCREATORBUG-23648 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientmanager.cpp')
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index 9ca9d06f358..384b78c72df 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -366,6 +366,8 @@ void LanguageClientManager::clientFinished(Client *client)
client->log(tr("Unexpectedly finished. Restarting in %1 seconds.").arg(restartTimeoutS),
Core::MessageManager::Flash);
QTimer::singleShot(restartTimeoutS * 1000, client, [client]() { startClient(client); });
+ for (TextEditor::TextDocument *document : m_clientForDocument.keys(client))
+ client->deactivateDocument(document);
} else {
if (unexpectedFinish && !m_shuttingDown)
client->log(tr("Unexpectedly finished."), Core::MessageManager::Flash);