X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatmonitorfilter.cpp;h=b46dd29cce0126f7c4bf1da7bd3dbac4a1d736eb;hp=055ed933f1875c88aadecddc93da90016742fa96;hb=4ae8f86c1ce452582d6fe576956c7c1bc1460adf;hpb=27302bba72a29977e81b9a0b2d8cde3a62ebc818 diff --git a/src/qtui/chatmonitorfilter.cpp b/src/qtui/chatmonitorfilter.cpp index 055ed933..b46dd29c 100644 --- a/src/qtui/chatmonitorfilter.cpp +++ b/src/qtui/chatmonitorfilter.cpp @@ -64,22 +64,23 @@ bool ChatMonitorFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourc if(!(type & (Message::Plain | Message::Notice | Message::Action))) return false; + BufferId bufferId = source_index.data(MessageModel::BufferIdRole).value(); + // ChatMonitorSettingsPage if(_operationMode == ChatViewSettings::OptOut && !(_showHighlights && flags & Message::Highlight) - && _bufferIds.contains(source_index.data(MessageModel::BufferIdRole).value())) + && _bufferIds.contains(bufferId)) return false; if(_operationMode == ChatViewSettings::OptIn && !(_showHighlights && flags & Message::Highlight) - && !_bufferIds.contains(source_index.data(MessageModel::BufferIdRole).value())) + && !_bufferIds.contains(bufferId)) return false; // ignorelist handling - const MessageModelItem *item = const_cast(static_cast(sourceModel()))->messageItemAt(sourceRow); // only match if message is not flagged as server msg - if(!(item->message().flags() & Message::ServerMsg) && - Client::ignoreListManager()->match(item->message(), Client::networkModel()->networkName(item->bufferId()))) - return false; + if(!(flags & Message::ServerMsg) && Client::ignoreListManager() + && Client::ignoreListManager()->match(source_index.data(MessageModel::MessageRole).value(), Client::networkModel()->networkName(bufferId))) + return false; return true; } @@ -164,5 +165,5 @@ void ChatMonitorFilter::buffersSettingChanged(const QVariant &newValue) { foreach (QVariant v, newValue.toList()) { _bufferIds << v.value(); } - invalidate(); + invalidateFilter(); }