static void render_contact_list (EABContactFormatter *formatter, EContact *contact, GString *buffer) { EDestination *destination; const GList *dest, *dests; destination = e_destination_new (); e_destination_set_contact (destination, contact, 0); dests = e_destination_list_get_root_dests (destination); render_title_block (formatter, contact, buffer); g_string_append_printf ( buffer, "<table border=\"0\"><tr><th colspan=\"2\">%s</th></tr>" "<tr><td with=" IMAGE_COL_WIDTH "></td><td>", _("List Members:")); g_string_append (buffer, "<table border=\"0\" cellspacing=\"1\">"); for (dest = dests; dest; dest = dest->next) render_contact_list_row (formatter, dest->data, buffer); g_string_append (buffer, "</table>"); g_string_append (buffer, "</td></tr></table>"); g_object_unref (destination); }
static void resolve_list_card (LDIFImporter *gci, EContact *contact) { GList *email, *l; GList *email_attrs = NULL; gchar *full_name; /* set file_as to full_name so we don't later try and figure * out a first/last name for the list. */ full_name = e_contact_get (contact, E_CONTACT_FULL_NAME); if (full_name) e_contact_set (contact, E_CONTACT_FILE_AS, full_name); g_free (full_name); /* FIMXE getting might not be implemented in ebook */ email = e_contact_get (contact, E_CONTACT_EMAIL); for (l = email; l; l = l->next) { /* mozilla stuffs dn's in the EMAIL list for contact lists */ gchar *dn = l->data; EContact *dn_contact = g_hash_table_lookup (gci->dn_contact_hash, dn); /* break list chains here, since we don't support them just yet */ if (dn_contact && !e_contact_get (dn_contact, E_CONTACT_IS_LIST)) { EDestination *dest; EVCardAttribute *attr = e_vcard_attribute_new (NULL, EVC_EMAIL); /* Hard-wired for default e-mail, since * netscape only exports 1 email address. */ dest = e_destination_new (); e_destination_set_contact (dest, dn_contact, 0); e_destination_export_to_vcard_attribute (dest, attr); g_object_unref (dest); email_attrs = g_list_append (email_attrs, attr); } } e_contact_set_attributes (contact, E_CONTACT_EMAIL, email_attrs); g_list_foreach (email, (GFunc) g_free, NULL); g_list_free (email); g_list_foreach (email_attrs, (GFunc) e_vcard_attribute_free, NULL); g_list_free (email_attrs); }
static void action_contact_send_message_cb (GtkAction *action, EBookShellView *book_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; EBookShellContent *book_shell_content; EAddressbookView *view; GSList *list, *iter; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); book_shell_content = book_shell_view->priv->book_shell_content; view = e_book_shell_content_get_current_view (book_shell_content); g_return_if_fail (view != NULL); list = e_addressbook_view_get_selected (view); g_return_if_fail (list != NULL); /* Convert the list of contacts to a list of destinations. */ for (iter = list; iter != NULL; iter = iter->next) { EContact *contact = iter->data; EDestination *destination; destination = e_destination_new (); e_destination_set_contact (destination, contact, 0); g_object_unref (contact); iter->data = destination; } eab_send_as_to (shell, list); e_client_util_free_object_slist (list); }