LSP: Remove a use of QLinkedList

Task-number: QTCREATORBUG-24098
Change-Id: Ia043284fa57e74ae1ca5f2aef6c3c363b0ca0715
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2020-06-18 13:29:52 +02:00
parent d3f85ee409
commit d15d15efa2
2 changed files with 10 additions and 10 deletions

View File

@@ -93,15 +93,14 @@ void LspLogger::log(const LspLogMessage::MessageSender sender,
const QString &clientName,
const BaseMessage &message)
{
QLinkedList<LspLogMessage> &clientLog = m_logs[clientName];
auto delta = clientLog.size() - m_logSize + 1;
if (delta > 0)
clientLog.erase(clientLog.begin(), clientLog.begin() + delta);
m_logs[clientName].append({sender, QTime::currentTime(), message});
emit newMessage(clientName, m_logs[clientName].last());
std::list<LspLogMessage> &clientLog = m_logs[clientName];
for (auto delta = clientLog.size() - m_logSize + 1; delta > 0; --delta)
clientLog.pop_front();
m_logs[clientName].push_back({sender, QTime::currentTime(), message});
emit newMessage(clientName, m_logs[clientName].back());
}
QLinkedList<LspLogMessage> LspLogger::messages(const QString &clientName) const
std::list<LspLogMessage> LspLogger::messages(const QString &clientName) const
{
return m_logs[clientName];
}

View File

@@ -25,12 +25,13 @@
#pragma once
#include <QLinkedList>
#include <QTime>
#include <QWidget>
#include <languageserverprotocol/basemessage.h>
#include <list>
namespace LanguageClient {
struct LspLogMessage
@@ -53,14 +54,14 @@ public:
const QString &clientName,
const LanguageServerProtocol::BaseMessage &message);
QLinkedList<LspLogMessage> messages(const QString &clientName) const;
std::list<LspLogMessage> messages(const QString &clientName) const;
QList<QString> clients() const;
signals:
void newMessage(const QString &clientName, const LspLogMessage &message);
private:
QMap<QString, QLinkedList<LspLogMessage>> m_logs;
QMap<QString, std::list<LspLogMessage>> m_logs;
int m_logSize = 100; // default log size if no widget is currently visible
};