Properly updating the new message marker on buffer switches
[quassel.git] / src / client / networkmodel.cpp
index 29ebfc9..d1d5fb5 100644 (file)
@@ -190,6 +190,12 @@ void BufferItem::setActivityLevel(BufferInfo::ActivityLevel level) {
   }
 }
 
+void BufferItem::clearActivityLevel() {
+  _activity = BufferInfo::NoActivity;
+  _lastSeenMarkerMsgId = _lastSeenMsgId;
+  emit dataChanged();
+}
+
 void BufferItem::updateActivityLevel(const Message &msg) {
   if(isCurrentBuffer()) {
     return;
@@ -952,6 +958,15 @@ void NetworkModel::setBufferActivity(const BufferId &bufferId, BufferInfo::Activ
   bufferItem->setActivityLevel(level);
 }
 
+void NetworkModel::clearBufferActivity(const BufferId &bufferId) {
+  BufferItem *bufferItem = findBufferItem(bufferId);
+  if(!bufferItem) {
+    qDebug() << "NetworkModel::clearBufferActivity(): buffer is unknown:" << bufferId;
+    return;
+  }
+  bufferItem->clearActivityLevel();
+}
+
 const Network *NetworkModel::networkByIndex(const QModelIndex &index) const {
   QVariant netVariant = index.data(NetworkIdRole);
   if(!netVariant.isValid())