From 89f98a31377073e716c9e536d3c5f392d61cc51f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 3 Feb 2018 00:29:41 +0100 Subject: [PATCH] Ref T240, added push_backMaxElements in CSequence --- src/blackgui/components/rawfsdmessagescomponent.cpp | 2 +- src/blackmisc/sequence.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/blackgui/components/rawfsdmessagescomponent.cpp b/src/blackgui/components/rawfsdmessagescomponent.cpp index 43889a793..91e20865c 100644 --- a/src/blackgui/components/rawfsdmessagescomponent.cpp +++ b/src/blackgui/components/rawfsdmessagescomponent.cpp @@ -190,7 +190,7 @@ namespace BlackGui void CRawFsdMessagesComponent::addFsdMessage(const CRawFsdMessage &rawFsdMessage) { if (m_buffer.size() == m_maxDisplayedMessages) { m_buffer.pop_front(); } - m_buffer.push_back(rawFsdMessage.getRawMessage()); + m_buffer.push_backMaxElements(rawFsdMessage, m_maxDisplayedMessages); if (! m_filterPacketType.isEmpty() && !rawFsdMessage.isPacketType(m_filterPacketType)) { return; } if (! m_filterString.isEmpty() && !rawFsdMessage.containsString(m_filterString)) { return; } diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index f48589116..2bfe18e75 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -186,6 +186,14 @@ namespace BlackMisc this->push_front(value); } + //! Insert as last element by keep maxElements + void push_backMaxElements(const T &value, int maxElements) + { + Q_ASSERT(maxElements > 1); + while (this->size() >= (maxElements - 1)) { this->pop_front(); } + this->push_back(value); + } + //! Move-appends an element at the end of the sequence. void push_back(T &&value) { m_impl.push_back(std::move(value)); }