]> git.0d.be Git - empathy.git/commitdiff
Port empathy to Telepathy logger 0.2.0
authorNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Thu, 24 Feb 2011 10:17:15 +0000 (10:17 +0000)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 24 Feb 2011 17:09:23 +0000 (17:09 +0000)
configure.ac
libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-contact-menu.c
libempathy-gtk/empathy-log-window.c
libempathy/empathy-contact.c
libempathy/empathy-message.c
libempathy/empathy-message.h

index 5ed244683e88d6777b6230de5d674ca8a69f99e1..50c0ccce2efd29acddbd0f4a23ba9e0344d55255 100644 (file)
@@ -41,7 +41,7 @@ LIBCANBERRA_GTK_REQUIRED=0.25
 LIBNOTIFY_REQUIRED=0.7.0
 TELEPATHY_FARSIGHT_REQUIRED=0.0.14
 TELEPATHY_GLIB_REQUIRED=0.13.14
-TELEPATHY_LOGGER=0.1.5
+TELEPATHY_LOGGER=0.2.0
 
 # Optional deps
 CLUTTER_GTK_REQUIRED=0.90.3
index cb9ceb31f0330a15a40dd42523458ae5b57465c8..77eac12fe1ee0a060ab06b8befca295b65f9f489 100644 (file)
@@ -2040,7 +2040,7 @@ chat_input_populate_popup_cb (GtkTextView *view,
 
 
 static gboolean
-chat_log_filter (TplEntry *log,
+chat_log_filter (TplEvent *log,
                 gpointer user_data)
 {
        EmpathyChat *chat = user_data;
@@ -2048,11 +2048,11 @@ chat_log_filter (TplEntry *log,
        EmpathyChatPriv *priv = GET_PRIV (chat);
        const GList *pending;
 
-       g_return_val_if_fail (TPL_IS_ENTRY (log), FALSE);
+       g_return_val_if_fail (TPL_IS_EVENT (log), FALSE);
        g_return_val_if_fail (EMPATHY_IS_CHAT (chat), FALSE);
 
        pending = empathy_tp_chat_get_pending_messages (priv->tp_chat);
-       message = empathy_message_from_tpl_log_entry (log);
+       message = empathy_message_from_tpl_log_event (log);
 
        for (; pending; pending = g_list_next (pending)) {
                if (empathy_message_equal (message, pending->data)) {
@@ -2099,7 +2099,7 @@ got_filtered_messages_cb (GObject *manager,
        EmpathyChatPriv *priv = GET_PRIV (chat);
        GError *error = NULL;
 
-       if (!tpl_log_manager_get_filtered_messages_finish (TPL_LOG_MANAGER (manager),
+       if (!tpl_log_manager_get_filtered_events_finish (TPL_LOG_MANAGER (manager),
                result, &messages, &error)) {
                DEBUG ("%s. Aborting.", error->message);
                empathy_chat_view_append_event (chat->view,
@@ -2110,9 +2110,9 @@ got_filtered_messages_cb (GObject *manager,
 
        for (l = messages; l; l = g_list_next (l)) {
                EmpathyMessage *message;
-               g_assert (TPL_IS_ENTRY (l->data));
+               g_assert (TPL_IS_EVENT (l->data));
 
-               message = empathy_message_from_tpl_log_entry (l->data);
+               message = empathy_message_from_tpl_log_event (l->data);
                g_object_unref (l->data);
 
                empathy_chat_view_append_message (chat->view, message);
@@ -2138,7 +2138,7 @@ static void
 chat_add_logs (EmpathyChat *chat)
 {
        EmpathyChatPriv *priv = GET_PRIV (chat);
-       gboolean         is_chatroom;
+       TplEntity       *target;
 
        if (!priv->id) {
                return;
@@ -2148,18 +2148,21 @@ chat_add_logs (EmpathyChat *chat)
        empathy_chat_view_scroll (chat->view, FALSE);
 
        /* Add messages from last conversation */
-       is_chatroom = priv->handle_type == TP_HANDLE_TYPE_ROOM;
+       if (priv->handle_type == TP_HANDLE_TYPE_ROOM)
+         target = tpl_entity_new_from_room_id (priv->id);
+       else
+         target = tpl_entity_new (priv->id, TPL_ENTITY_CONTACT, NULL, NULL);
 
        priv->retrieving_backlogs = TRUE;
-       tpl_log_manager_get_filtered_messages_async (priv->log_manager,
-                                                             priv->account,
-                                                             priv->id,
-                                                             is_chatroom,
-                                                             5,
-                                                             chat_log_filter,
-                                                             chat,
-                                                             got_filtered_messages_cb,
-                                                             (gpointer) chat);
+       tpl_log_manager_get_filtered_events_async (priv->log_manager,
+                                                  priv->account,
+                                                  target,
+                                                  TPL_EVENT_MASK_TEXT,
+                                                  5,
+                                                  chat_log_filter,
+                                                  chat,
+                                                  got_filtered_messages_cb,
+                                                  (gpointer) chat);
 }
 
 static gint
index cff1bf4e5b405044afc952355e4b0d5ecc3c7067..3bf4157466076404de3a1fbce04e26a535f29928 100644 (file)
@@ -317,6 +317,7 @@ GtkWidget *
 empathy_contact_log_menu_item_new (EmpathyContact *contact)
 {
        TplLogManager     *manager;
+       TplEntity         *entity;
        gboolean           have_log;
        GtkWidget         *item;
        GtkWidget         *image;
@@ -324,11 +325,15 @@ empathy_contact_log_menu_item_new (EmpathyContact *contact)
        g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
 
        manager = tpl_log_manager_dup_singleton ();
+       entity = tpl_entity_new_from_tp_contact (empathy_contact_get_tp_contact (contact),
+                                                TPL_ENTITY_CONTACT);
+
        have_log = tpl_log_manager_exists (manager,
-                                              empathy_contact_get_account (contact),
-                                              empathy_contact_get_id (contact),
-                                              FALSE);
+                                          empathy_contact_get_account (contact),
+                                          entity,
+                                          TPL_EVENT_MASK_TEXT);
 
+       g_object_unref (entity);
        g_object_unref (manager);
 
        item = gtk_image_menu_item_new_with_mnemonic (_("_Previous Conversations"));
index d3f5667774f03fcdb2b8db97ffbf7c0c7d871a38..0ee1e8e598cf4183aa12666fc3d09a43fe8f18ed 100644 (file)
@@ -107,8 +107,7 @@ static void     log_window_chats_accounts_changed_cb       (GtkWidget        *co
 static void     log_window_chats_set_selected              (EmpathyLogWindow *window);
 static gboolean log_window_chats_get_selected              (EmpathyLogWindow *window,
                                                            TpAccount       **account,
-                                                           gchar           **chat_id,
-                                                           gboolean         *is_chatroom);
+                                                           TplEntity        **target);
 static void     log_window_chats_get_messages              (EmpathyLogWindow *window,
                                                            GDate      *date_to_show);
 static void     log_window_calendar_chats_day_selected_cb  (GtkWidget        *calendar,
@@ -125,8 +124,7 @@ enum {
        COL_FIND_ACCOUNT_NAME,
        COL_FIND_ACCOUNT,
        COL_FIND_CHAT_NAME,
-       COL_FIND_CHAT_ID,
-       COL_FIND_IS_CHATROOM,
+       COL_FIND_TARGET,
        COL_FIND_DATE,
        COL_FIND_DATE_READABLE,
        COL_FIND_COUNT
@@ -136,8 +134,7 @@ enum {
        COL_CHAT_ICON,
        COL_CHAT_NAME,
        COL_CHAT_ACCOUNT,
-       COL_CHAT_ID,
-       COL_CHAT_IS_CHATROOM,
+       COL_CHAT_TARGET,
        COL_CHAT_COUNT
 };
 
@@ -371,7 +368,7 @@ log_window_entry_find_changed_cb (GtkWidget       *entry,
 }
 
 static void
-got_messages_for_date_cb (GObject *manager,
+got_events_for_date_cb (GObject *manager,
                        GAsyncResult *result,
                        gpointer user_data)
 {
@@ -385,7 +382,7 @@ got_messages_for_date_cb (GObject *manager,
        if (log_window == NULL)
                return;
 
-       if (!tpl_log_manager_get_messages_for_date_finish (TPL_LOG_MANAGER (manager),
+       if (!tpl_log_manager_get_events_for_date_finish (TPL_LOG_MANAGER (manager),
                result, &messages, &error)) {
                        DEBUG ("Unable to retrieve messages for the selected date: %s. Aborting",
                                        error->message);
@@ -398,9 +395,9 @@ got_messages_for_date_cb (GObject *manager,
        for (l = messages; l; l = l->next) {
                        EmpathyMessage *message;
 
-                       g_assert (TPL_IS_ENTRY (l->data));
+                       g_assert (TPL_IS_EVENT (l->data));
 
-                       message = empathy_message_from_tpl_log_entry (l->data);
+                       message = empathy_message_from_tpl_log_event (l->data);
                        g_object_unref (l->data);
                        empathy_chat_view_append_message (window->chatview_find, message);
                        g_object_unref (message);
@@ -455,8 +452,7 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
        GtkTreeModel  *model;
        GtkTreeIter    iter;
        TpAccount     *account;
-       gchar         *chat_id;
-       gboolean       is_chatroom;
+       TplEntity     *target;
        gchar         *date;
        GDate         *gdate;
 
@@ -478,8 +474,7 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
 
        gtk_tree_model_get (model, &iter,
                            COL_FIND_ACCOUNT, &account,
-                           COL_FIND_CHAT_ID, &chat_id,
-                           COL_FIND_IS_CHATROOM, &is_chatroom,
+                           COL_FIND_TARGET, &target,
                            COL_FIND_DATE, &date,
                            -1);
 
@@ -493,20 +488,20 @@ log_window_find_changed_cb (GtkTreeSelection *selection,
        gdate = gdate_from_str (date);
 
        if (gdate != NULL) {
-               tpl_log_manager_get_messages_for_date_async (window->log_manager,
-                                                                     account,
-                                                                     chat_id,
-                                                                     is_chatroom,
-                                                                     gdate,
-                                                                     got_messages_for_date_cb,
-                                                                     window);
+               tpl_log_manager_get_events_for_date_async (window->log_manager,
+                                                          account,
+                                                          target,
+                                                          TPL_EVENT_MASK_TEXT,
+                                                          gdate,
+                                                          got_events_for_date_cb,
+                                                          window);
 
                g_date_free (gdate);
        }
 
        g_object_unref (account);
+       g_object_unref (target);
        g_free (date);
-       g_free (chat_id);
 }
 
 
@@ -541,7 +536,7 @@ log_manager_searched_new_cb (GObject *manager,
                        hit = l->data;
 
                        /* Protect against invalid data (corrupt or old log files. */
-                       if (hit->account == NULL || hit->chat_id == NULL) {
+                       if (hit->account == NULL || hit->target == NULL) {
                                        continue;
                        }
 
@@ -559,15 +554,14 @@ log_manager_searched_new_cb (GObject *manager,
                                        COL_FIND_ACCOUNT_ICON, account_icon,
                                        COL_FIND_ACCOUNT_NAME, account_name,
                                        COL_FIND_ACCOUNT, hit->account,
-                                       COL_FIND_CHAT_NAME, hit->chat_id, /* FIXME */
-                                       COL_FIND_CHAT_ID, hit->chat_id,
-                                       COL_FIND_IS_CHATROOM, hit->is_chatroom,
+                                       COL_FIND_CHAT_NAME, tpl_entity_get_alias (hit->target),
+                                       COL_FIND_TARGET, hit->target,
                                        COL_FIND_DATE, tmp,
                                        COL_FIND_DATE_READABLE, date_readable,
                                        -1);
 
                        /* FIXME: Update COL_FIND_CHAT_NAME */
-                       if (hit->is_chatroom) {
+                       if (tpl_entity_get_entity_type (hit->target) == TPL_ENTITY_ROOM) {
                        } else {
                        }
        }
@@ -600,7 +594,8 @@ log_window_find_populate (EmpathyLogWindow *window,
                return;
        }
 
-       tpl_log_manager_search_async (window->log_manager, search_criteria,
+       tpl_log_manager_search_async (window->log_manager,
+                       search_criteria, TPL_EVENT_MASK_TEXT,
                        log_manager_searched_new_cb, (gpointer) store);
 }
 
@@ -625,8 +620,7 @@ log_window_find_setup (EmpathyLogWindow *window)
                                    G_TYPE_STRING,          /* account name */
                                    TP_TYPE_ACCOUNT,        /* account */
                                    G_TYPE_STRING,          /* chat name */
-                                   G_TYPE_STRING,          /* chat id */
-                                   G_TYPE_BOOLEAN,         /* is chatroom */
+                                   TPL_TYPE_ENTITY,        /* target */
                                    G_TYPE_STRING,          /* date */
                                    G_TYPE_STRING);         /* date_readable */
 
@@ -788,12 +782,14 @@ log_window_chats_changed_cb (GtkTreeSelection *selection,
 }
 
 static void
-log_manager_got_chats_cb (GObject *manager,
-                       GAsyncResult *result,
-                       gpointer user_data)
+log_manager_got_entities_cb (GObject *manager,
+                            GAsyncResult *result,
+                            gpointer user_data)
 {
        EmpathyLogWindow      *window = user_data;
-       GList                 *chats;
+       EmpathyAccountChooser *account_chooser;
+       TpAccount             *account;
+       GList                 *entities;
        GList                 *l;
        GtkTreeView           *view;
        GtkTreeModel          *model;
@@ -803,11 +799,16 @@ log_manager_got_chats_cb (GObject *manager,
        GError                *error = NULL;
        gboolean               select_account = FALSE;
 
+       account_chooser = EMPATHY_ACCOUNT_CHOOSER (window->account_chooser_chats);
+       account = empathy_account_chooser_dup_account (account_chooser);
+
+       view = GTK_TREE_VIEW (window->treeview_chats);
+
        if (log_window == NULL)
                return;
 
-       if (!tpl_log_manager_get_chats_finish (TPL_LOG_MANAGER (manager),
-               result, &chats, &error)) {
+       if (!tpl_log_manager_get_entities_finish (TPL_LOG_MANAGER (manager),
+               result, &entities, &error)) {
                        DEBUG ("%s. Aborting", error->message);
                        g_error_free (error);
                        return;
@@ -818,34 +819,32 @@ log_manager_got_chats_cb (GObject *manager,
        selection = gtk_tree_view_get_selection (view);
        store = GTK_LIST_STORE (model);
 
-       for (l = chats; l; l = l->next) {
-                       TplLogSearchHit *hit;
-
-                       hit = l->data;
+       for (l = entities; l; l = l->next) {
+                       TplEntity *entity;
 
-                       if (hit->account == NULL)
-                               continue;
+                       entity = TPL_ENTITY (l->data);
 
                        gtk_list_store_append (store, &iter);
                        gtk_list_store_set (store, &iter,
                                        COL_CHAT_ICON, "empathy-available", /* FIXME */
-                                       COL_CHAT_NAME, hit->chat_id,
-                                       COL_CHAT_ACCOUNT, hit->account,
-                                       COL_CHAT_ID, hit->chat_id,
-                                       COL_CHAT_IS_CHATROOM, hit->is_chatroom,
+                                       COL_CHAT_NAME, tpl_entity_get_alias (entity),
+                                       COL_CHAT_ACCOUNT, account,
+                                       COL_CHAT_TARGET, entity,
                                        -1);
 
                        if (window->selected_account != NULL &&
-                           !tp_strdiff (tp_proxy_get_object_path (hit->account),
+                           !tp_strdiff (tp_proxy_get_object_path (account),
                            tp_proxy_get_object_path (window->selected_account)))
                                select_account = TRUE;
 
                        /* FIXME: Update COL_CHAT_ICON/NAME */
-                       if (hit->is_chatroom) {
+                       if (tpl_entity_get_entity_type (entity) == TPL_ENTITY_ROOM) {
                        } else {
                        }
+
+                       g_object_unref (entity);
        }
-       tpl_log_manager_search_free (chats);
+       g_list_free (entities);
 
        /* Unblock signals */
        g_signal_handlers_unblock_by_func (selection,
@@ -889,8 +888,8 @@ log_window_chats_populate (EmpathyLogWindow *window)
 
        gtk_list_store_clear (store);
 
-       tpl_log_manager_get_chats_async (window->log_manager, account,
-                       log_manager_got_chats_cb, (gpointer) window);
+       tpl_log_manager_get_entities_async (window->log_manager, account,
+                       log_manager_got_entities_cb, (gpointer) window);
 }
 
 static void
@@ -912,8 +911,7 @@ log_window_chats_setup (EmpathyLogWindow *window)
                                    G_TYPE_STRING,        /* icon */
                                    G_TYPE_STRING,        /* name */
                                    TP_TYPE_ACCOUNT,      /* account */
-                                   G_TYPE_STRING,        /* id */
-                                   G_TYPE_BOOLEAN);      /* is chatroom */
+                                   TPL_TYPE_ENTITY);     /* target */
 
        model = GTK_TREE_MODEL (store);
        sortable = GTK_TREE_SORTABLE (store);
@@ -981,16 +979,19 @@ log_window_chats_set_selected (EmpathyLogWindow *window)
        }
 
        for (ok = TRUE; ok; ok = gtk_tree_model_iter_next (model, &iter)) {
-               TpAccount *this_account;
-               gchar     *this_chat_id;
-               gboolean   this_is_chatroom;
+               TpAccount   *this_account;
+               TplEntity   *this_target;
+               const gchar *this_chat_id;
+               gboolean     this_is_chatroom;
 
                gtk_tree_model_get (model, &iter,
                                    COL_CHAT_ACCOUNT, &this_account,
-                                   COL_CHAT_ID, &this_chat_id,
-                                   COL_CHAT_IS_CHATROOM, &this_is_chatroom,
+                                   COL_CHAT_TARGET, &this_target,
                                    -1);
 
+               this_chat_id = tpl_entity_get_identifier (this_target);
+               this_is_chatroom = tpl_entity_get_entity_type (this_target) == TPL_ENTITY_ROOM;
+
                if (this_account == window->selected_account &&
                    !tp_strdiff (this_chat_id, window->selected_chat_id) &&
                    this_is_chatroom == window->selected_is_chatroom) {
@@ -999,12 +1000,12 @@ log_window_chats_set_selected (EmpathyLogWindow *window)
                        gtk_tree_view_scroll_to_cell (view, path, NULL, TRUE, 0.5, 0.0);
                        gtk_tree_path_free (path);
                        g_object_unref (this_account);
-                       g_free (this_chat_id);
+                       g_object_unref (this_target);
                        break;
                }
 
                g_object_unref (this_account);
-               g_free (this_chat_id);
+               g_object_unref (this_target);
        }
 
        tp_clear_object (&window->selected_account);
@@ -1014,16 +1015,14 @@ log_window_chats_set_selected (EmpathyLogWindow *window)
 static gboolean
 log_window_chats_get_selected (EmpathyLogWindow  *window,
                               TpAccount       **account,
-                              gchar           **chat_id,
-                              gboolean         *is_chatroom)
+                              TplEntity       **target)
 {
        GtkTreeView      *view;
        GtkTreeModel     *model;
        GtkTreeSelection *selection;
        GtkTreeIter       iter;
-       gchar            *id = NULL;
+       TplEntity        *targ;
        TpAccount        *acc = NULL;
-       gboolean          room = FALSE;
 
        view = GTK_TREE_VIEW (window->treeview_chats);
        model = gtk_tree_view_get_model (view);
@@ -1035,24 +1034,20 @@ log_window_chats_get_selected (EmpathyLogWindow  *window,
 
        gtk_tree_model_get (model, &iter,
                            COL_CHAT_ACCOUNT, &acc,
-                           COL_CHAT_ID, &id,
-                           COL_CHAT_IS_CHATROOM, &room,
+                           COL_CHAT_TARGET, &targ,
                            -1);
 
-       if (chat_id != NULL) {
-               *chat_id = id;
-       } else {
-               g_free (id);
-       }
        if (account != NULL) {
-               *account = acc;
-       } else {
-               g_object_unref (acc);
+               *account = g_object_ref (acc);
        }
-       if (is_chatroom) {
-               *is_chatroom = room;
+
+       if (target != NULL) {
+               *target = g_object_ref (targ);
        }
 
+       g_object_unref (acc);
+       g_object_unref (targ);
+
        return TRUE;
 }
 
@@ -1062,15 +1057,15 @@ log_window_got_messages_for_date_cb (GObject *manager,
     gpointer user_data)
 {
   EmpathyLogWindow *window = user_data;
-  GList *messages;
+  GList *events;
   GList *l;
   GError *error = NULL;
 
   if (log_window == NULL)
     return;
 
-  if (!tpl_log_manager_get_messages_for_date_finish (TPL_LOG_MANAGER (manager),
-        result, &messages, &error)) {
+  if (!tpl_log_manager_get_events_for_date_finish (TPL_LOG_MANAGER (manager),
+        result, &events, &error)) {
       DEBUG ("Unable to retrieve messages for the selected date: %s. Aborting",
           error->message);
       empathy_chat_view_append_event (window->chatview_find,
@@ -1079,14 +1074,14 @@ log_window_got_messages_for_date_cb (GObject *manager,
       return;
   }
 
-  for (l = messages; l; l = l->next) {
-      EmpathyMessage *message = empathy_message_from_tpl_log_entry (l->data);
+  for (l = events; l; l = l->next) {
+      EmpathyMessage *message = empathy_message_from_tpl_log_event (l->data);
       g_object_unref (l->data);
       empathy_chat_view_append_message (window->chatview_chats,
           message);
       g_object_unref (message);
   }
-  g_list_free (messages);
+  g_list_free (events);
 
   /* Turn back on scrolling */
   empathy_chat_view_scroll (window->chatview_find, TRUE);
@@ -1101,11 +1096,9 @@ log_window_get_messages_for_date (EmpathyLogWindow *window,
                                  GDate *date)
 {
   TpAccount *account;
-  gchar *chat_id;
-  gboolean is_chatroom;
+  TplEntity *target;
 
-  if (!log_window_chats_get_selected (window, &account,
-        &chat_id, &is_chatroom)) {
+  if (!log_window_chats_get_selected (window, &account, &target)) {
       return;
   }
 
@@ -1115,16 +1108,15 @@ log_window_get_messages_for_date (EmpathyLogWindow *window,
   /* Turn off scrolling temporarily */
   empathy_chat_view_scroll (window->chatview_find, FALSE);
 
-  /* Get messages */
-  tpl_log_manager_get_messages_for_date_async (window->log_manager,
-      account, chat_id,
-      is_chatroom,
+  /* Get events */
+  tpl_log_manager_get_events_for_date_async (window->log_manager,
+      account, target, TPL_EVENT_MASK_TEXT,
       date,
       log_window_got_messages_for_date_cb,
       (gpointer) window);
 
-  g_free (chat_id);
   g_object_unref (account);
+  g_object_unref (target);
 }
 
 static void
@@ -1212,15 +1204,13 @@ log_window_chats_get_messages (EmpathyLogWindow *window,
                               GDate     *date)
 {
        TpAccount     *account;
-       gchar         *chat_id;
-       gboolean       is_chatroom;
+       TplEntity     *target;
        guint          year_selected;
        guint          month_selected;
        guint          day;
 
 
-       if (!log_window_chats_get_selected (window, &account,
-                                           &chat_id, &is_chatroom)) {
+       if (!log_window_chats_get_selected (window, &account, &target)) {
                return;
        }
 
@@ -1232,8 +1222,7 @@ log_window_chats_get_messages (EmpathyLogWindow *window,
        if (date == NULL) {
                /* Get a list of dates and show them on the calendar */
                tpl_log_manager_get_dates_async (window->log_manager,
-                                                      account, chat_id,
-                                                      is_chatroom,
+                                                      account, target, TPL_EVENT_MASK_TEXT,
                                                       log_manager_got_dates_cb, (gpointer) window);
     /* signal unblocked at the end of the CB flow */
        } else {
@@ -1263,7 +1252,7 @@ log_window_chats_get_messages (EmpathyLogWindow *window,
        }
 
        g_object_unref (account);
-       g_free (chat_id);
+       g_object_unref (target);
 }
 
 static void
@@ -1348,25 +1337,23 @@ log_window_calendar_chats_month_changed_cb (GtkWidget       *calendar,
                                            EmpathyLogWindow *window)
 {
        TpAccount     *account;
-       gchar         *chat_id;
-       gboolean       is_chatroom;
+       TplEntity     *target;
 
        gtk_calendar_clear_marks (GTK_CALENDAR (calendar));
 
-       if (!log_window_chats_get_selected (window, &account,
-                                           &chat_id, &is_chatroom)) {
+       if (!log_window_chats_get_selected (window, &account, &target)) {
                DEBUG ("No chat selected to get dates for...");
                return;
        }
 
        /* Get the log object for this contact */
-       tpl_log_manager_get_dates_async (window->log_manager, account,
-                                              chat_id, is_chatroom,
+       tpl_log_manager_get_dates_async (window->log_manager, account, target,
+                                              TPL_EVENT_MASK_TEXT,
                                               log_window_updating_calendar_month_cb,
                                               (gpointer) window);
 
        g_object_unref (account);
-       g_free (chat_id);
+       g_object_unref (target);
 }
 
 static void
index 0547ef82d250b085070f94c997124b3e4c3c7fdf..73539b4067b513fa18873a0760b33bfca7e499d5 100644 (file)
@@ -1161,12 +1161,17 @@ static gboolean
 contact_has_log (EmpathyContact *contact)
 {
   TplLogManager *manager;
+  TplEntity *entity;
   gboolean have_log;
 
   manager = tpl_log_manager_dup_singleton ();
+  entity = tpl_entity_new (empathy_contact_get_id (contact),
+      TPL_ENTITY_CONTACT, NULL, NULL);
+
   have_log = tpl_log_manager_exists (manager,
-      empathy_contact_get_account (contact), empathy_contact_get_id (contact),
-      FALSE);
+      empathy_contact_get_account (contact), entity, TPL_EVENT_MASK_TEXT);
+
+  g_object_unref (entity);
   g_object_unref (manager);
 
   return have_log;
index ca3b020ac9f793d1d8a73231f3e38a2c3c66b83f..e194573db5f630d890de379e589b88748f47b12c 100644 (file)
@@ -31,8 +31,8 @@
 #include <telepathy-glib/account-manager.h>
 
 #include <telepathy-logger/entity.h>
-#include <telepathy-logger/entry.h>
-#include <telepathy-logger/entry-text.h>
+#include <telepathy-logger/event.h>
+#include <telepathy-logger/text-event.h>
 
 #include "empathy-message.h"
 #include "empathy-utils.h"
@@ -259,7 +259,7 @@ empathy_message_new (const gchar *body)
 }
 
 EmpathyMessage *
-empathy_message_from_tpl_log_entry (TplEntry *logentry)
+empathy_message_from_tpl_log_event (TplEvent *logevent)
 {
        EmpathyMessage *retval = NULL;
        TpAccountManager *acc_man = NULL;
@@ -269,7 +269,7 @@ empathy_message_from_tpl_log_entry (TplEntry *logentry)
        gchar *body= NULL;
        EmpathyContact *contact;
 
-       g_return_val_if_fail (TPL_IS_ENTRY (logentry), NULL);
+       g_return_val_if_fail (TPL_IS_EVENT (logevent), NULL);
 
        acc_man = tp_account_manager_dup ();
        /* FIXME Currently Empathy shows in the log viewer only valid accounts, so it
@@ -284,24 +284,24 @@ empathy_message_from_tpl_log_entry (TplEntry *logentry)
         * needed anymore any TpAccount passing and the following call will be
         * useless */
        account = tp_account_manager_ensure_account (acc_man,
-                       tpl_entry_get_account_path (logentry));
+                       tpl_event_get_account_path (logevent));
        g_object_unref (acc_man);
 
-       /* TODO Currently only TplLogEntryText exists as subclass of TplEntry, in
-        * future more TplEntry will exist and EmpathyMessage should probably
-        * be enhanced to support other types of log entries (ie TplLogEntryCall).
+       /* TODO Currently only TplTextEvent exists as subclass of TplEvent, in
+        * future more TplEvent will exist and EmpathyMessage should probably
+        * be enhanced to support other types of log entries (ie TplCallEvent).
         *
         * For now we just check (simply) that we are dealing with the only supported type,
         * then there will be a if/then/else or switch handling all the supported
         * cases.
         */
-       if (!TPL_IS_ENTRY_TEXT (logentry))
+       if (!TPL_IS_TEXT_EVENT (logevent))
                return NULL;
 
-       body = g_strdup (tpl_entry_text_get_message (
-                               TPL_ENTRY_TEXT (logentry)));
-       receiver = tpl_entry_get_receiver (logentry);
-       sender = tpl_entry_get_sender (logentry);
+       body = g_strdup (tpl_text_event_get_message (
+                               TPL_TEXT_EVENT (logevent)));
+       receiver = tpl_event_get_receiver (logevent);
+       sender = tpl_event_get_sender (logevent);
 
        retval = empathy_message_new (body);
        if (receiver != NULL) {
@@ -317,9 +317,7 @@ empathy_message_from_tpl_log_entry (TplEntry *logentry)
        }
 
        empathy_message_set_timestamp (retval,
-                       tpl_entry_get_timestamp (logentry));
-       empathy_message_set_id (retval,
-                       tpl_entry_text_get_pending_msg_id (TPL_ENTRY_TEXT (logentry)));
+                       tpl_event_get_timestamp (logevent));
        empathy_message_set_is_backlog (retval, TRUE);
 
        g_free (body);
index b7a63f81e027f7301212e2c25af74e63a72330c2..1db0eff600bb0e612de3673b09b5f76f9131df74 100644 (file)
@@ -26,7 +26,7 @@
 #define __EMPATHY_MESSAGE_H__
 
 #include <glib-object.h>
-#include <telepathy-logger/entry.h>
+#include <telepathy-logger/event.h>
 
 #include "empathy-contact.h"
 #include "empathy-time.h"
@@ -54,7 +54,7 @@ struct _EmpathyMessageClass {
 
 GType                    empathy_message_get_type          (void) G_GNUC_CONST;
 EmpathyMessage *         empathy_message_new               (const gchar              *body);
-EmpathyMessage *         empathy_message_from_tpl_log_entry (TplEntry                *logentry);
+EmpathyMessage *         empathy_message_from_tpl_log_event (TplEvent                *logevent);
 TpChannelTextMessageType empathy_message_get_tptype        (EmpathyMessage           *message);
 void                     empathy_message_set_tptype        (EmpathyMessage           *message,
                                                            TpChannelTextMessageType  type);