From 79697ab1fc4f90646bc3495514d6e30585a2f97f Mon Sep 17 00:00:00 2001 From: Jonny Lamb Date: Fri, 6 Mar 2009 11:51:58 +0000 Subject: Only write messages to one specified log source, hardcoded at the moment. Signed-off-by: Jonny Lamb svn path=/trunk/; revision=2590 --- libempathy/empathy-log-manager.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'libempathy/empathy-log-manager.c') diff --git a/libempathy/empathy-log-manager.c b/libempathy/empathy-log-manager.c index 46463733f..1593ff4d0 100644 --- a/libempathy/empathy-log-manager.c +++ b/libempathy/empathy-log-manager.c @@ -28,6 +28,8 @@ #include #include +#include + #include "empathy-log-manager.h" #include "empathy-log-source-empathy.h" #include "empathy-log-source.h" @@ -120,26 +122,44 @@ empathy_log_manager_dup_singleton (void) return g_object_new (EMPATHY_TYPE_LOG_MANAGER, NULL); } -void +gboolean empathy_log_manager_add_message (EmpathyLogManager *manager, const gchar *chat_id, gboolean chatroom, - EmpathyMessage *message) + EmpathyMessage *message, + GError **error) { EmpathyLogManagerPriv *priv; GList *l; + gboolean out = FALSE; + gboolean found = FALSE; - g_return_if_fail (EMPATHY_IS_LOG_MANAGER (manager)); - g_return_if_fail (chat_id != NULL); - g_return_if_fail (EMPATHY_IS_MESSAGE (message)); + /* TODO: When multiple log sources appear with add_message implementations + * make this customisable. */ + const gchar *add_source = "Empathy"; + + g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), FALSE); + g_return_val_if_fail (chat_id != NULL, FALSE); + g_return_val_if_fail (EMPATHY_IS_MESSAGE (message), FALSE); priv = GET_PRIV (manager); for (l = priv->sources; l; l = l->next) { - empathy_log_source_add_message (EMPATHY_LOG_SOURCE (l->data), - chat_id, chatroom, message); + if (!tp_strdiff (empathy_log_source_get_name ( + EMPATHY_LOG_SOURCE (l->data)), add_source)) + { + out = empathy_log_source_add_message (EMPATHY_LOG_SOURCE (l->data), + chat_id, chatroom, message, error); + found = TRUE; + break; + } } + + if (!found) + DEBUG ("Failed to find chosen log source to write to."); + + return out; } gboolean -- cgit v1.2.3