forked from qt-creator/qt-creator
LanguageClient: log progress duration
Change-Id: I443f6c909b5ba15babf4741937b99d57c5825169 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -7,10 +7,14 @@
|
||||
#include <coreplugin/progressmanager/progressmanager.h>
|
||||
#include <languageserverprotocol/progresssupport.h>
|
||||
|
||||
#include <QTime>
|
||||
|
||||
using namespace LanguageServerProtocol;
|
||||
|
||||
namespace LanguageClient {
|
||||
|
||||
static Q_LOGGING_CATEGORY(LOGPROGRESS, "qtc.languageclient.progress", QtWarningMsg);
|
||||
|
||||
ProgressManager::ProgressManager()
|
||||
{}
|
||||
|
||||
@@ -69,6 +73,8 @@ void ProgressManager::beginProgress(const ProgressToken &token, const WorkDonePr
|
||||
Core::FutureProgress *progress = Core::ProgressManager::addTask(
|
||||
interface->future(), title, languageClientProgressId(token));
|
||||
m_progress[token] = {progress, interface};
|
||||
if (LOGPROGRESS().isDebugEnabled())
|
||||
m_timer[token].start();
|
||||
reportProgress(token, begin);
|
||||
}
|
||||
|
||||
@@ -101,6 +107,13 @@ void ProgressManager::endProgress(const ProgressToken &token, const WorkDoneProg
|
||||
}
|
||||
progress.progressInterface->setSubtitle(message);
|
||||
progress.progressInterface->setSubtitleVisibleInStatusBar(!message.isEmpty());
|
||||
auto timer = m_timer.take(token);
|
||||
if (timer.isValid()) {
|
||||
qCDebug(LOGPROGRESS) << QString("%1 took %2")
|
||||
.arg(progress.progressInterface->title())
|
||||
.arg(QTime::fromMSecsSinceStartOfDay(timer.elapsed())
|
||||
.toString(Qt::ISODateWithMs));
|
||||
}
|
||||
}
|
||||
endProgress(token);
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <coreplugin/progressmanager/futureprogress.h>
|
||||
|
||||
#include <QElapsedTimer>
|
||||
#include <QFutureInterface>
|
||||
#include <QPointer>
|
||||
|
||||
@@ -46,6 +47,7 @@ private:
|
||||
|
||||
QMap<LanguageServerProtocol::ProgressToken, LanguageClientProgress> m_progress;
|
||||
QMap<LanguageServerProtocol::ProgressToken, QString> m_titles;
|
||||
QMap<LanguageServerProtocol::ProgressToken, QElapsedTimer> m_timer;
|
||||
};
|
||||
|
||||
} // namespace LanguageClient
|
||||
|
Reference in New Issue
Block a user