X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=c25fda61c18c2d2c3afc294ab50ce7e679088955;hp=6bc96f80237115ef99ac7eb9747e83f4593f67f3;hb=a72e2b4a90ce18c58b54e111161691ba008dc47d;hpb=541013790cdbd0c32d81debf8f42ac6b5183a4aa diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 6bc96f80..c25fda61 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -26,6 +26,7 @@ #include "buffermodel.h" #include "buffersettings.h" #include "client.h" +#include "clientignorelistmanager.h" #include "clientsettings.h" #include "ircchannel.h" #include "network.h" @@ -108,7 +109,7 @@ BufferItem *NetworkItem::bufferItem(const BufferInfo &bufferInfo) { newChild(bufferItem); - // postprocess... this is necessary because Qt doesn't seem to like adding childs which already have childs on their own + // postprocess... this is necessary because Qt doesn't seem to like adding children which already have children on their own switch(bufferInfo.type()) { case BufferInfo::ChannelBuffer: { @@ -235,7 +236,7 @@ void BufferItem::clearActivityLevel() { _firstUnreadMsgId = MsgId(); // FIXME remove with core proto v11 - if(!Client::coreFeatures() & Quassel::SynchronizedMarkerLine) { + if(!(Client::coreFeatures() & Quassel::SynchronizedMarkerLine)) { _markerLineMsgId = _lastSeenMsgId; } @@ -250,6 +251,10 @@ void BufferItem::updateActivityLevel(const Message &msg) { if(msg.flags() & Message::Self) // don't update activity for our own messages return; + if (Client::ignoreListManager() + && Client::ignoreListManager()->match(msg, qobject_cast(parent())->networkName())) + return; + if(msg.msgId() <= lastSeenMsgId()) return; @@ -319,7 +324,7 @@ void BufferItem::setLastSeenMsgId(MsgId msgId) { _lastSeenMsgId = msgId; // FIXME remove with core protocol v11 - if(!Client::coreFeatures() & Quassel::SynchronizedMarkerLine) { + if(!(Client::coreFeatures() & Quassel::SynchronizedMarkerLine)) { if(!isCurrentBuffer()) _markerLineMsgId = msgId; } @@ -424,7 +429,7 @@ QString QueryBufferItem::toolTip(int column) const { toolTip.append(tr("Query with %1").arg(bufferName())); if(_ircUser) { - if(_ircUser->userModes() != "") toolTip[0].append(QString(" (%1)").arg(_ircUser->userModes())); + if(_ircUser->userModes() != "") toolTip[0].append(QString(" (+%1)").arg(_ircUser->userModes())); if(_ircUser->isAway()) { toolTip[0].append(QString(" (away%1)").arg(!_ircUser->awayMessage().isEmpty() ? (QString(" ") + _ircUser->awayMessage()) : QString())); } @@ -798,7 +803,7 @@ QString IrcUserItem::toolTip(int column) const { QStringList toolTip(QString("%1").arg(nickName())); if(_ircUser->userModes() != "") toolTip[0].append(QString(" (%1)").arg(_ircUser->userModes())); if(_ircUser->isAway()) { - toolTip[0].append(" is away"); + toolTip[0].append(tr(" is away")); if(!_ircUser->awayMessage().isEmpty()) toolTip[0].append(QString(" (%1)").arg(_ircUser->awayMessage())); } @@ -1022,6 +1027,7 @@ void NetworkModel::setLastSeenMsgId(const BufferId &bufferId, const MsgId &msgId return; } bufferItem->setLastSeenMsgId(msgId); + emit lastSeenMsgSet(bufferId, msgId); } void NetworkModel::setMarkerLineMsgId(const BufferId &bufferId, const MsgId &msgId) { @@ -1032,6 +1038,7 @@ void NetworkModel::setMarkerLineMsgId(const BufferId &bufferId, const MsgId &msg return; } bufferItem->setMarkerLineMsgId(msgId); + emit markerLineSet(bufferId, msgId); } void NetworkModel::updateBufferActivity(Message &msg) { @@ -1087,7 +1094,7 @@ void NetworkModel::updateBufferActivity(BufferItem *bufferItem, const Message &m bufferItem->updateActivityLevel(msg); if(bufferItem->isCurrentBuffer()) - emit setLastSeenMsg(bufferItem->bufferId(), msg.msgId()); + emit requestSetLastSeenMsg(bufferItem->bufferId(), msg.msgId()); } void NetworkModel::setBufferActivity(const BufferId &bufferId, BufferInfo::ActivityLevel level) {