fixing some more issues with initial backlog fetching
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 31 Mar 2009 00:11:32 +0000 (02:11 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 31 Mar 2009 00:11:32 +0000 (02:11 +0200)
src/client/clientbacklogmanager.cpp
src/client/clientbufferviewmanager.cpp

index 7753842..00d49d2 100644 (file)
@@ -103,9 +103,11 @@ void ClientBacklogManager::requestInitialBacklog() {
 
 BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &bufferIds) {
   BufferIdList newBuffers;
+  QSet<BufferId> availableBuffers = Client::networkModel()->allBufferIds().toSet();
   foreach(BufferId bufferId, bufferIds) {
-    if(!_buffersRequested.contains(bufferId))
-      newBuffers << bufferId;
+    if(_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId))
+      continue;
+    newBuffers << bufferId;
   }
   return newBuffers;
 }
index d7cd837..315c2a8 100644 (file)
@@ -20,7 +20,6 @@
 
 #include "clientbufferviewmanager.h"
 
-#include "bufferviewoverlay.h"
 #include "clientbufferviewconfig.h"
 
 ClientBufferViewManager::ClientBufferViewManager(SignalProxy *proxy, QObject *parent)
@@ -54,7 +53,7 @@ void ClientBufferViewManager::waitForConfigInit() {
     connect(config, SIGNAL(initDone()), this, SLOT(configInitBarrier()));
   }
   if(initialized)
-    emit viewsInitialized();
+    QMetaObject::invokeMethod(this, "viewsInitialized", Qt::QueuedConnection);
 }
 
 void ClientBufferViewManager::configInitBarrier() {
@@ -67,5 +66,5 @@ void ClientBufferViewManager::configInitBarrier() {
     initialized &= config->isInitialized();
   }
   if(initialized)
-    emit viewsInitialized();
+    QMetaObject::invokeMethod(this, "viewsInitialized", Qt::QueuedConnection);
 }