really don't..
[quassel.git] / src / client / networkmodel.cpp
index cd5f46d..ae44091 100644 (file)
@@ -970,6 +970,7 @@ MsgId NetworkModel::lastSeenMarkerMsgId(BufferId bufferId) const {
 MsgId NetworkModel::lastSeenMsgId(const BufferId &bufferId) {
   BufferItem *bufferItem = findBufferItem(bufferId);
   if(!bufferItem) {
+    qDebug() << "NetworkModel::lastSeenMsgId(): buffer is unknown:" << bufferId;
     Client::purgeKnownBufferIds();
     return MsgId();
   }
@@ -979,6 +980,7 @@ MsgId NetworkModel::lastSeenMsgId(const BufferId &bufferId) {
 void NetworkModel::setLastSeenMsgId(const BufferId &bufferId, const MsgId &msgId) {
   BufferItem *bufferItem = findBufferItem(bufferId);
   if(!bufferItem) {
+    qDebug() << "NetworkModel::setLastSeenMsgId(): buffer is unknown:" << bufferId;
     Client::purgeKnownBufferIds();
     return;
   }
@@ -1003,6 +1005,16 @@ void NetworkModel::updateBufferActivity(Message &msg) {
     msg.setFlags(msg.flags() | Message::Redirected);
     redirectionTarget = _errorMsgsTarget;
     break;
+  // Update IrcUser's last activity
+  case Message::Plain:
+  case Message::Action:
+    if(bufferType(msg.bufferId()) == BufferInfo::ChannelBuffer) {
+      const Network *net = Client::network(msg.bufferInfo().networkId());
+      IrcUser *user = net ? net->ircUser(nickFromMask(msg.sender())) : 0;
+      if(user)
+        user->setLastChannelActivity(msg.bufferId(), msg.timestamp());
+    }
+    break;
   default:
     break;
   }