From a66ec86776c22be7b4b57db18a29d3d82e3be1da Mon Sep 17 00:00:00 2001 From: Daniel Albers Date: Mon, 1 Mar 2010 22:28:48 +0100 Subject: [PATCH 1/1] update search results when fetching backlog Introduces the signal MessageModel::finishedBacklogFetch(BufferId) --- src/client/messagemodel.cpp | 4 +++- src/client/messagemodel.h | 3 +++ src/qtui/chatviewsearchcontroller.cpp | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) 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(); } -- 2.20.1