preventing refetching of backlog which was already pulled inwith the initial request
[quassel.git] / src / client / clientbacklogmanager.cpp
index f88c606..fc82d20 100644 (file)
@@ -35,6 +35,12 @@ ClientBacklogManager::ClientBacklogManager(QObject *parent)
 {
 }
 
+QVariantList ClientBacklogManager::requestBacklog(BufferId bufferId, MsgId first, MsgId last, int limit, int additional) {
+  _buffersRequested << bufferId;
+  qDebug() << _buffersRequested;
+  return BacklogManager::requestBacklog(bufferId, first, last, limit, additional);
+}
+
 void ClientBacklogManager::receiveBacklog(BufferId bufferId, MsgId first, MsgId last, int limit, int additional, QVariantList msgs) {
   Q_UNUSED(first) Q_UNUSED(last) Q_UNUSED(limit) Q_UNUSED(additional)
 
@@ -90,7 +96,7 @@ void ClientBacklogManager::requestInitialBacklog() {
     _requester = new FixedBacklogRequester(this);
   };
 
-  _requester->requestBacklog();
+  _requester->requestInitialBacklog();
   if(_requester->isBuffering()) {
     updateProgress(0, _requester->totalBuffers());
   }
@@ -102,12 +108,15 @@ BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &buffer
     if(!_buffersRequested.contains(bufferId))
       newBuffers << bufferId;
   }
-  _buffersRequested += bufferIds.toSet();
   return newBuffers;
 }
 
 void ClientBacklogManager::checkForBacklog(const QList<BufferId> &bufferIds) {
-  Q_ASSERT(_requester);
+  if(!_requester) {
+    // during client start up this message is to be expected in some situations.
+    qDebug() << "ClientBacklogManager::checkForBacklog(): no active backlog requester (yet?).";
+    return;
+  }
   switch(_requester->type()) {
   case BacklogRequester::GlobalUnread:
     break;