forked from qt-creator/qt-creator
LanguageClient: clear running progress when resetting client
Otherwise we will have dangling progress bars after a crashed server was restarted. Change-Id: I889d201d7cf196623978638db67397203a8f4564 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -1019,6 +1019,7 @@ bool Client::reset()
|
||||
m_runningAssistProcessors.clear();
|
||||
qDeleteAll(m_documentHighlightsTimer);
|
||||
m_documentHighlightsTimer.clear();
|
||||
m_progressManager.reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -38,9 +38,7 @@ ProgressManager::ProgressManager()
|
||||
|
||||
ProgressManager::~ProgressManager()
|
||||
{
|
||||
const QList<ProgressToken> &tokens = m_progress.keys();
|
||||
for (const ProgressToken &token : tokens)
|
||||
endProgress(token);
|
||||
reset();
|
||||
}
|
||||
|
||||
void ProgressManager::handleProgress(const LanguageServerProtocol::ProgressParams ¶ms)
|
||||
@@ -61,6 +59,13 @@ void ProgressManager::setTitleForToken(const LanguageServerProtocol::ProgressTok
|
||||
m_titles.insert(token, message);
|
||||
}
|
||||
|
||||
void ProgressManager::reset()
|
||||
{
|
||||
const QList<ProgressToken> &tokens = m_progress.keys();
|
||||
for (const ProgressToken &token : tokens)
|
||||
endProgress(token);
|
||||
}
|
||||
|
||||
bool ProgressManager::isProgressEndMessage(const LanguageServerProtocol::ProgressParams ¶ms)
|
||||
{
|
||||
return Utils::holds_alternative<WorkDoneProgressEnd>(params.value());
|
||||
|
@@ -48,6 +48,7 @@ public:
|
||||
void handleProgress(const LanguageServerProtocol::ProgressParams ¶ms);
|
||||
void setTitleForToken(const LanguageServerProtocol::ProgressToken &token,
|
||||
const QString &message);
|
||||
void reset();
|
||||
|
||||
static bool isProgressEndMessage(const LanguageServerProtocol::ProgressParams ¶ms);
|
||||
|
||||
|
Reference in New Issue
Block a user