style button is smaller now
[quassel.git] / src / uisupport / abstractbuffercontainer.cpp
index e6b1f14..8fa4351 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -20,6 +20,7 @@
 
 #include "abstractbuffercontainer.h"
 #include "client.h"
+#include "clientbacklogmanager.h"
 #include "networkmodel.h"
 
 AbstractBufferContainer::AbstractBufferContainer(QWidget *parent)
@@ -71,17 +72,20 @@ void AbstractBufferContainer::currentChanged(const QModelIndex &current, const Q
   if(newBufferId != oldBufferId) {
     setCurrentBuffer(newBufferId);
     emit currentChanged(newBufferId);
+    emit currentChanged(current);
   }
 }
 
 void AbstractBufferContainer::setCurrentBuffer(BufferId bufferId) {
   BufferId prevBufferId = currentBuffer();
   if(prevBufferId.isValid() && _chatViews.contains(prevBufferId)) {
-    Client::setBufferLastSeenMsg(prevBufferId, _chatViews[prevBufferId]->lastMsgId());
+    MsgId msgId = _chatViews.value(prevBufferId)->lastMsgId();
+    Client::setBufferLastSeenMsg(prevBufferId, msgId);
+    if(autoSetMarkerLine())
+      Client::setBufferMarkerLine(prevBufferId, msgId);
   }
 
   if(!bufferId.isValid()) {
-    qWarning() << "AbstractBufferContainer::setBuffer(BufferId): invalid BufferId:" << bufferId;
     _currentBuffer = 0;
     showChatView(0);
     return;
@@ -92,7 +96,8 @@ void AbstractBufferContainer::setCurrentBuffer(BufferId bufferId) {
 
   _currentBuffer = bufferId;
   showChatView(bufferId);
-  Client::networkModel()->setBufferActivity(bufferId, Buffer::NoActivity);
+  Client::networkModel()->clearBufferActivity(bufferId);
   Client::setBufferLastSeenMsg(bufferId, _chatViews[bufferId]->lastMsgId());
+  Client::backlogManager()->checkForBacklog(bufferId);
   setFocus();
 }