From: Daniel Albers Date: Mon, 1 Mar 2010 21:28:48 +0000 (+0100) Subject: update search results when fetching backlog X-Git-Tag: 0.6-rc1~16 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=a66ec86776c22be7b4b57db18a29d3d82e3be1da update search results when fetching backlog Introduces the signal MessageModel::finishedBacklogFetch(BufferId) --- diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index d10a9bcc..0cc31a18 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -387,8 +387,10 @@ void MessageModel::messagesReceived(BufferId bufferId, int count) { return; _messagesWaiting[bufferId] -= count; - if(_messagesWaiting[bufferId] <= 0) + if(_messagesWaiting[bufferId] <= 0) { _messagesWaiting.remove(bufferId); + emit finishedBacklogFetch(bufferId); + } } void MessageModel::buffersPermanentlyMerged(BufferId bufferId1, BufferId bufferId2) { diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index f4a76555..2439d1e0 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -71,6 +71,9 @@ public: void clear(); +signals: + void finishedBacklogFetch(BufferId bufferId); + public slots: void requestBacklog(BufferId bufferId); void messagesReceived(BufferId bufferId, int count); diff --git a/src/qtui/chatviewsearchcontroller.cpp b/src/qtui/chatviewsearchcontroller.cpp index 671ac72c..8e72aef3 100644 --- a/src/qtui/chatviewsearchcontroller.cpp +++ b/src/qtui/chatviewsearchcontroller.cpp @@ -61,6 +61,7 @@ void ChatViewSearchController::setSearchString(const QString &searchString) { if(_scene) { disconnect(_scene, 0, this, 0); + disconnect(Client::messageModel(), 0, this, 0); qDeleteAll(_highlightItems); _highlightItems.clear(); } @@ -71,6 +72,7 @@ void ChatViewSearchController::setSearchString(const QString &searchString) { connect(_scene, SIGNAL(destroyed()), this, SLOT(sceneDestroyed())); connect(_scene, SIGNAL(layoutChanged()), this, SLOT(repositionHighlights())); + connect(Client::messageModel(), SIGNAL(finishedBacklogFetch(BufferId)), this, SLOT(updateHighlights())); updateHighlights(); }