X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fmessagefilter.cpp;h=55f609c7f7f08bf2e07eb3a72de35734fca4e854;hb=982bfbf8081be22ce7ce08adcf3ba92361ee7ca5;hp=53ac5e1b6da43d172abc4a1abb6183a438a1a32d;hpb=27302bba72a29977e81b9a0b2d8cde3a62ebc818;p=quassel.git diff --git a/src/client/messagefilter.cpp b/src/client/messagefilter.cpp index 53ac5e1b..55f609c7 100644 --- a/src/client/messagefilter.cpp +++ b/src/client/messagefilter.cpp @@ -121,7 +121,7 @@ QString MessageFilter::idString() const { bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { Q_UNUSED(sourceParent); QModelIndex sourceIdx = sourceModel()->index(sourceRow, 2); - Message::Type messageType = (Message::Type)sourceModel()->data(sourceIdx, MessageModel::TypeRole).toInt(); + Message::Type messageType = (Message::Type)sourceIdx.data(MessageModel::TypeRole).toInt(); // apply message type filter if(_messageTypeFilter & messageType) @@ -130,13 +130,13 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar if(_validBuffers.isEmpty()) return true; - BufferId bufferId = sourceModel()->data(sourceIdx, MessageModel::BufferIdRole).value(); + BufferId bufferId = sourceIdx.data(MessageModel::BufferIdRole).value(); if(!bufferId.isValid()) { return true; } - MsgId msgId = sourceModel()->data(sourceIdx, MessageModel::MsgIdRole).value(); - Message::Flags flags = (Message::Flags)sourceModel()->data(sourceIdx, MessageModel::FlagsRole).toInt(); + // MsgId msgId = sourceIdx.data(MessageModel::MsgIdRole).value(); + Message::Flags flags = (Message::Flags)sourceIdx.data(MessageModel::FlagsRole).toInt(); NetworkId myNetworkId = networkId(); NetworkId msgNetworkId = Client::networkModel()->networkId(bufferId); @@ -144,23 +144,22 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar 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(sourceIdx.data(MessageModel::MessageRole).value(), Client::networkModel()->networkName(bufferId))) + return false; if(flags & Message::Redirected) { int redirectionTarget = 0; switch(messageType) { case Message::Notice: if(Client::networkModel()->bufferType(bufferId) != BufferInfo::ChannelBuffer) { - if(flags & Message::ServerMsg) { - // server notice - redirectionTarget = _serverNoticesTarget; - } else { - redirectionTarget = _userNoticesTarget; - } + if(flags & Message::ServerMsg) { + // server notice + redirectionTarget = _serverNoticesTarget; + } else { + redirectionTarget = _userNoticesTarget; + } } break; case Message::Error: @@ -176,21 +175,21 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar if(redirectionTarget & BufferSettings::CurrentBuffer && !(flags & Message::Backlog)) { BufferId redirectedTo = sourceModel()->data(sourceIdx, MessageModel::RedirectedToRole).value(); if(!redirectedTo.isValid()) { - BufferId redirectedTo = Client::bufferModel()->currentIndex().data(NetworkModel::BufferIdRole).value(); - if(redirectedTo.isValid()) - sourceModel()->setData(sourceIdx, QVariant::fromValue(redirectedTo), MessageModel::RedirectedToRole); + BufferId redirectedTo = Client::bufferModel()->currentIndex().data(NetworkModel::BufferIdRole).value(); + if(redirectedTo.isValid()) + sourceModel()->setData(sourceIdx, QVariant::fromValue(redirectedTo), MessageModel::RedirectedToRole); } if(_validBuffers.contains(redirectedTo)) - return true; + return true; } if(redirectionTarget & BufferSettings::StatusBuffer) { QSet::const_iterator idIter = _validBuffers.constBegin(); while(idIter != _validBuffers.constEnd()) { - if(Client::networkModel()->bufferType(*idIter) == BufferInfo::StatusBuffer) - return true; - idIter++; + if(Client::networkModel()->bufferType(*idIter) == BufferInfo::StatusBuffer) + return true; + idIter++; } }