From e0655f212ecf54be83f5090a3ba640f8de564471 Mon Sep 17 00:00:00 2001 From: Svetlana Tkachenko Date: Wed, 31 Jan 2018 23:11:35 +0000 Subject: [PATCH] Exclude ignored messages in Away Log Cleaned-up-by: Manuel Nickschas --- src/qtui/awaylogfilter.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/qtui/awaylogfilter.cpp b/src/qtui/awaylogfilter.cpp index 3669c41c..882a7af9 100644 --- a/src/qtui/awaylogfilter.cpp +++ b/src/qtui/awaylogfilter.cpp @@ -19,6 +19,7 @@ ***************************************************************************/ #include "awaylogfilter.h" +#include "clientignorelistmanager.h" AwayLogFilter::AwayLogFilter(MessageModel *model, QObject *parent) : ChatMonitorFilter(model, parent) @@ -33,16 +34,28 @@ bool AwayLogFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar QModelIndex source_index = sourceModel()->index(sourceRow, 0); Message::Flags flags = (Message::Flags)sourceModel()->data(source_index, MessageModel::FlagsRole).toInt(); - if (!(flags & Message::Backlog && flags & Message::Highlight)) + // Only show highlights from the backlog + if (!(flags & Message::Backlog && flags & Message::Highlight)) { return false; + } + // do not use invalid buffers BufferId bufferId = sourceModel()->data(source_index, MessageModel::BufferIdRole).value(); if (!bufferId.isValid()) { return false; } - if (Client::networkModel()->lastSeenMsgId(bufferId) >= sourceModel()->data(source_index, MessageModel::MsgIdRole).value()) + // only show messages that were sent after the user detached + if (Client::networkModel()->lastSeenMsgId(bufferId) >= sourceModel()->data(source_index, MessageModel::MsgIdRole).value()) { return false; + } + + // ignorelist handling + // only match if message is not flagged as server msg + if (!(flags & Message::ServerMsg) && Client::ignoreListManager() + && Client::ignoreListManager()->match(source_index.data(MessageModel::MessageRole).value(), Client::networkModel()->networkName(bufferId))) { + return false; + } return true; } -- 2.20.1