X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fawaylogfilter.cpp;h=8e5366b0f84d5548c64280274663c2d2bc256c68;hp=09964a46918d825a379207fa26d292d12e72caa9;hb=1b9dc90e54c1c7c2012decfb87cce80dbae60be9;hpb=453ccab6ade4a21c7aa3c331af893c91468250a4 diff --git a/src/qtui/awaylogfilter.cpp b/src/qtui/awaylogfilter.cpp index 09964a46..8e5366b0 100644 --- a/src/qtui/awaylogfilter.cpp +++ b/src/qtui/awaylogfilter.cpp @@ -30,17 +30,27 @@ bool AwayLogFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar QModelIndex source_index = sourceModel()->index(sourceRow, 0); - Message::Flags flags = (Message::Flags)source_index.data(MessageModel::FlagsRole).toInt(); + Message::Flags flags = (Message::Flags)sourceModel()->data(source_index, MessageModel::FlagsRole).toInt(); if(!(flags & Message::Backlog && flags & Message::Highlight)) return false; - BufferId bufferId = source_index.data(MessageModel::BufferIdRole).value(); + BufferId bufferId = sourceModel()->data(source_index, MessageModel::BufferIdRole).value(); if(!bufferId.isValid()) { return false; } - if(Client::networkModel()->lastSeenMsgId(bufferId) >= source_index.data(MessageModel::MsgIdRole).value()) + if(Client::networkModel()->lastSeenMsgId(bufferId) >= sourceModel()->data(source_index, MessageModel::MsgIdRole).value()) return false; return true; } + +QVariant AwayLogFilter::data(const QModelIndex &index, int role) const { + if(role != MessageModel::FlagsRole) + return ChatMonitorFilter::data(index, role); + + QModelIndex source_index = mapToSource(index); + Message::Flags flags = (Message::Flags)sourceModel()->data(source_index, MessageModel::FlagsRole).toInt(); + flags &= ~Message::Highlight; + return (int)flags; +}