Ref T111, allow to limit entries in log component

This commit is contained in:
Klaus Basan
2017-08-08 02:23:27 +02:00
committed by Mathew Sutcliffe
parent 4c8ae06eff
commit 266a418c90
6 changed files with 73 additions and 3 deletions

View File

@@ -102,6 +102,11 @@ namespace BlackGui
ui->tep_StatusPageConsole->clear();
}
int CLogComponent::rowCount() const
{
return ui->tvp_StatusMessages->rowCount();
}
void CLogComponent::appendStatusMessageToConsole(const CStatusMessage &statusMessage)
{
if (statusMessage.isEmpty()) return;
@@ -117,12 +122,14 @@ namespace BlackGui
{
if (statusMessage.isEmpty()) { return; }
ui->tvp_StatusMessages->insert(statusMessage);
this->removeOldest();
}
void CLogComponent::appendStatusMessagesToList(const CStatusMessageList &statusMessages)
{
if (statusMessages.isEmpty()) { return; }
ui->tvp_StatusMessages->insert(statusMessages);
this->removeOldest();
}
void CLogComponent::onStatusMessageDataChanged(int count, bool withFilter)
@@ -136,6 +143,20 @@ namespace BlackGui
ui->tw_StatusPage->setTabText(i, o);
}
void CLogComponent::removeOldest()
{
// do not remove every time, but when a threshold is reached
if (m_maxLogMessages < 1) { return; }
if (m_maxLogMessages < 100 && ui->tvp_StatusMessages->rowCount() > (m_maxLogMessages + 10))
{
ui->tvp_StatusMessages->keepLatest(m_maxLogMessages);
}
else if (ui->tvp_StatusMessages->rowCount() > (m_maxLogMessages * 1.1))
{
ui->tvp_StatusMessages->keepLatest(m_maxLogMessages);
}
}
void CLogComponent::CLogMenu::customMenu(CMenuActions &menuActions)
{
CLogComponent *logComp = qobject_cast<CLogComponent *>(this->parent());