From: Marcus Eggenberger Date: Mon, 27 Oct 2008 23:51:23 +0000 (+0100) Subject: fixing a bug where no backlog is requested after an aborted connect X-Git-Tag: 0.3.1~116 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=bcd6ecbc69fba90189c16e84e74488b2817d0700 fixing a bug where no backlog is requested after an aborted connect --- diff --git a/src/client/client.cpp b/src/client/client.cpp index 93c5e215..b0be2a3d 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -302,6 +302,7 @@ void Client::disconnectedFromCore() { emit disconnected(); emit coreConnectionStateChanged(false); + backlogManager()->reset(); messageProcessor()->reset(); // Clear internal data. Hopefully nothing relies on it at this point. diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 35d46fa1..518ac243 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -83,9 +83,7 @@ void ClientBacklogManager::stopBuffering() { Q_ASSERT(_requester); dispatchMessages(_requester->bufferedMessages(), true); - - delete _requester; - _requester = 0; + reset(); } bool ClientBacklogManager::isBuffering() { @@ -103,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; +} diff --git a/src/client/clientbacklogmanager.h b/src/client/clientbacklogmanager.h index 6d76789b..400edcba 100644 --- a/src/client/clientbacklogmanager.h +++ b/src/client/clientbacklogmanager.h @@ -37,6 +37,8 @@ public: // helper for the backlogRequester, as it isn't a QObject and can't emit itself inline void emitMessagesRequested(const QString &msg) const { emit messagesRequested(msg); } + void reset(); + public slots: virtual void receiveBacklog(BufferId bufferId, int lastMsgs, int offset, QVariantList msgs); void requestInitialBacklog();