fixing a bug where no backlog is requested after an aborted connect
[quassel.git] / src / client / clientbacklogmanager.cpp
index f28913f..518ac24 100644 (file)
@@ -27,6 +27,8 @@
 
 #include <ctime>
 
+#include <QDebug>
+
 ClientBacklogManager::ClientBacklogManager(QObject *parent)
   : BacklogManager(parent),
     _requester(0)
@@ -40,6 +42,8 @@ void ClientBacklogManager::receiveBacklog(BufferId bufferId, int lastMsgs, int o
   if(msgs.isEmpty())
     return;
 
+  emit messagesReceived(bufferId, msgs.count());
+
   MessageList msglist;
   foreach(QVariant v, msgs) {
     Message msg = v.value<Message>();
@@ -79,9 +83,7 @@ void ClientBacklogManager::stopBuffering() {
   Q_ASSERT(_requester);
 
   dispatchMessages(_requester->bufferedMessages(), true);
-
-  delete _requester;
-  _requester = 0;
+  reset();
 }
 
 bool ClientBacklogManager::isBuffering() {
@@ -99,3 +101,8 @@ void ClientBacklogManager::dispatchMessages(const MessageList &messages, bool so
 
   emit messagesProcessed(tr("Processed %1 messages in %2 seconds.").arg(msgs.count()).arg((float)(end_t - start_t) / CLOCKS_PER_SEC));
 }
+
+void ClientBacklogManager::reset() {
+  delete _requester;
+  _requester = 0;
+}