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

View File

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