From d78ab99f9c8eb7952f502cfb81a9bb0274b210df Mon Sep 17 00:00:00 2001 From: Jonny Lamb Date: Fri, 6 Mar 2009 11:51:21 +0000 Subject: Made get_last_messages source independent. (Jonny Lamb) Signed-off-by: Jonny Lamb svn path=/trunk/; revision=2579 --- libempathy/empathy-log-manager.c | 26 +++++++++++--------------- libempathy/empathy-log-source-empathy.c | 28 ---------------------------- 2 files changed, 11 insertions(+), 43 deletions(-) diff --git a/libempathy/empathy-log-manager.c b/libempathy/empathy-log-manager.c index 371100e13..f734a184d 100644 --- a/libempathy/empathy-log-manager.c +++ b/libempathy/empathy-log-manager.c @@ -246,29 +246,25 @@ empathy_log_manager_get_last_messages (EmpathyLogManager *manager, const gchar *chat_id, gboolean chatroom) { - GList *l, *out = NULL; - EmpathyLogManagerPriv *priv; + GList *messages = NULL; + GList *dates; + GList *l; g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL); g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (chat_id != NULL, NULL); - priv = GET_PRIV (manager); + dates = empathy_log_manager_get_dates (manager, account, chat_id, chatroom); - for (l = priv->sources; l; l = l->next) - { - EmpathyLogSource *source = (EmpathyLogSource *) l->data; + l = g_list_last (dates); + if (l) + messages = empathy_log_manager_get_messages_for_date (manager, account, + chat_id, chatroom, l->data); - if (!source->get_last_messages) - continue; - - if (!out) - out = source->get_last_messages (manager, account, chat_id, chatroom); - else - out = g_list_concat (out, source->get_last_messages (manager, account, chat_id, chatroom)); - } + g_list_foreach (dates, (GFunc) g_free, NULL); + g_list_free (dates); - return out; + return messages; } GList * diff --git a/libempathy/empathy-log-source-empathy.c b/libempathy/empathy-log-source-empathy.c index 678ac423a..d6804683c 100644 --- a/libempathy/empathy-log-source-empathy.c +++ b/libempathy/empathy-log-source-empathy.c @@ -623,33 +623,6 @@ log_source_empathy_get_messages_for_date (EmpathyLogManager *manager, return messages; } -static GList * -log_source_empathy_get_last_messages (EmpathyLogManager *manager, - McAccount *account, - const gchar *chat_id, - gboolean chatroom) -{ - GList *messages = NULL; - GList *dates; - GList *l; - - g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL); - g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); - g_return_val_if_fail (chat_id != NULL, NULL); - - dates = log_source_empathy_get_dates (manager, account, chat_id, chatroom); - - l = g_list_last (dates); - if (l) - messages = log_source_empathy_get_messages_for_date (manager, account, - chat_id, chatroom, l->data); - - g_list_foreach (dates, (GFunc) g_free, NULL); - g_list_free (dates); - - return messages; -} - static GList * log_source_empathy_get_chats (EmpathyLogManager *manager, McAccount *account) @@ -679,7 +652,6 @@ empathy_log_source_empathy_get_source (void) source->exists = log_source_empathy_exists; source->add_message = log_source_empathy_add_message; source->get_dates = log_source_empathy_get_dates; - source->get_last_messages = log_source_empathy_get_last_messages; source->get_messages_for_date = log_source_empathy_get_messages_for_date; source->get_chats = log_source_empathy_get_chats; source->search_new = log_source_empathy_search_new; -- cgit v1.2.3