static GtkWidget* get_grid (MuMsg *msg) { GtkWidget *grid; int row; row = 0; grid = gtk_grid_new (); /* 5 2 */ gtk_grid_insert_column (GTK_GRID(grid), 0); gtk_grid_insert_column (GTK_GRID(grid), 1); if (add_row (grid, row, "From", mu_msg_get_from (msg), TRUE)) ++row; if (add_row (grid, row, "To", mu_msg_get_to (msg), FALSE)) ++row; if (add_row (grid, row, "Cc", mu_msg_get_cc (msg), FALSE)) ++row; if (add_row (grid, row, "Subject", mu_msg_get_subject (msg), TRUE)) ++row; if (add_row (grid, row, "Date", mu_date_str_s ("%c", mu_msg_get_date (msg)),TRUE)) ++row; return grid; }
/* we ignore fields for now */ static gboolean view_msg_plain (MuMsg *msg, const gchar *fields, gboolean summary, gboolean color) { gchar *attachs; time_t date; const GSList *lst; print_field ("From", mu_msg_get_from (msg), color); print_field ("To", mu_msg_get_to (msg), color); print_field ("Cc", mu_msg_get_cc (msg), color); print_field ("Bcc", mu_msg_get_bcc (msg), color); print_field ("Subject", mu_msg_get_subject (msg), color); if ((date = mu_msg_get_date (msg))) print_field ("Date", mu_date_str_s ("%c", date), color); if ((lst = mu_msg_get_tags (msg))) { gchar *tags; tags = mu_str_from_list (lst,','); print_field ("Tags", tags, color); g_free (tags); } if ((attachs = get_attach_str (msg))) { print_field ("Attachments", attachs, color); g_free (attachs); } body_or_summary (msg, summary, color); return TRUE; }
static void add_row (GtkListStore * store, MuMsg *msg) { GtkTreeIter treeiter; const gchar *datestr, *flagstr; gchar *from, *to; time_t timeval; timeval = mu_msg_get_date (msg); datestr = timeval == 0 ? "-" : mu_date_display_s (timeval); from = empty_or_display_contact (mu_msg_get_from (msg)); to = empty_or_display_contact (mu_msg_get_to (msg)); flagstr = mu_flags_to_str_s (mu_msg_get_flags (msg), MU_FLAG_TYPE_ANY); gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, MUG_COL_DATESTR, datestr, MUG_COL_MAILDIR, mu_msg_get_maildir (msg), MUG_COL_FLAGSSTR, flagstr, MUG_COL_FROM, from, MUG_COL_TO, to, MUG_COL_SUBJECT, mu_msg_get_subject (msg), MUG_COL_PATH, mu_msg_get_path (msg), MUG_COL_PRIO, mu_msg_get_prio (msg), MUG_COL_FLAGS, mu_msg_get_flags (msg), MUG_COL_TIME, timeval, -1); g_free (from); g_free (to); }
static void add_row (GtkTreeStore * store, MuMsg *msg, GtkTreeIter *treeiter) { const gchar *datestr, *flagstr; gchar *from, *to; time_t timeval; timeval = mu_msg_get_date (msg); datestr = timeval == 0 ? "-" : mu_date_display_s (timeval); from = empty_or_display_contact (mu_msg_get_from (msg)); to = empty_or_display_contact (mu_msg_get_to (msg)); flagstr = mu_flags_to_str_s (mu_msg_get_flags (msg), MU_FLAG_TYPE_ANY); /* if (0) { */ /* GtkTreeIter myiter; */ /* if (!gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL(store), */ /* &myiter, path)) */ /* g_warning ("%s: cannot get iter for %s", * __FUNCTION__, path); */ /* } */ gtk_tree_store_set (store, treeiter, MUG_COL_DATESTR, datestr, MUG_COL_MAILDIR, mu_msg_get_maildir (msg), MUG_COL_FLAGSSTR, flagstr, MUG_COL_FROM, from, MUG_COL_TO, to, MUG_COL_SUBJECT, mu_msg_get_subject (msg), MUG_COL_PATH, mu_msg_get_path (msg), MUG_COL_PRIO, mu_msg_get_prio (msg), MUG_COL_FLAGS, mu_msg_get_flags (msg), MUG_COL_TIME, timeval, -1); g_free (from); g_free (to); }
GtkWidget * get_table (MuMsg *msg) { GtkWidget *table; int row; row = 0; table = gtk_table_new (5, 2, FALSE); if (add_row (table, row, "From", mu_msg_get_from (msg), TRUE)) ++row; if (add_row (table, row, "To", mu_msg_get_to (msg), FALSE)) ++row; if (add_row (table, row, "Cc", mu_msg_get_cc (msg), FALSE)) ++row; if (add_row (table, row, "Subject", mu_msg_get_subject (msg), TRUE)) ++row; if (add_row (table, row, "Date", mu_date_str_s ("%c", mu_msg_get_date (msg)),TRUE)) ++row; gtk_table_resize (GTK_TABLE(table), row, 2); return table; }
static void msg_contact_foreach_doc (MuMsg *msg, MuMsgContactForeachFunc func, gpointer user_data) { addresses_foreach (mu_msg_get_from (msg), MU_MSG_CONTACT_TYPE_FROM, func, user_data); addresses_foreach (mu_msg_get_to (msg), MU_MSG_CONTACT_TYPE_TO, func, user_data); addresses_foreach (mu_msg_get_cc (msg), MU_MSG_CONTACT_TYPE_CC, func, user_data); addresses_foreach (mu_msg_get_bcc (msg), MU_MSG_CONTACT_TYPE_BCC, func, user_data); }
static gboolean output_xml (MuMsg *msg, MuMsgIter *iter, MuConfig *opts, GError **err) { g_print ("\t<message>\n"); print_attr_xml ("from", mu_msg_get_from (msg)); print_attr_xml ("to", mu_msg_get_to (msg)); print_attr_xml ("cc", mu_msg_get_cc (msg)); print_attr_xml ("subject", mu_msg_get_subject (msg)); g_print ("\t\t<date>%u</date>\n", (unsigned)mu_msg_get_date (msg)); g_print ("\t\t<size>%u</size>\n", (unsigned)mu_msg_get_size (msg)); print_attr_xml ("msgid", mu_msg_get_msgid (msg)); print_attr_xml ("path", mu_msg_get_path (msg)); print_attr_xml ("maildir", mu_msg_get_maildir (msg)); g_print ("\t</message>\n"); return TRUE; }
/* return the path to the output file, or NULL in case of error */ static gboolean convert_to_pdf (MuMsg *msg, GError **err) { GString *gstr; const char *body; gchar *data; gboolean rv; gstr = g_string_sized_new (4096); add_header (gstr, "From", mu_msg_get_from (msg)); add_header (gstr, "To", mu_msg_get_to (msg)); add_header (gstr, "Cc", mu_msg_get_cc (msg)); add_header (gstr, "Subject", mu_msg_get_subject (msg)); add_header (gstr, "Date", mu_date_str_s ("%c", mu_msg_get_date(msg))); gstr = g_string_append (gstr, "<hr>\n"); body = mu_msg_get_body_html (msg, MU_MSG_OPTION_NONE); if (body) g_string_append_printf (gstr, "%s", body); else { body = mu_msg_get_body_text (msg, MU_MSG_OPTION_NONE); if (body) { gchar *esc; esc = g_markup_escape_text (body, -1); g_string_append_printf (gstr, "<pre>\n%s\n</pre>", esc); g_free (esc); } else gstr = g_string_append (gstr, "<i>No body</i>\n"); } data = g_string_free (gstr, FALSE); rv = generate_pdf (msg, data, err); g_free (data); return rv; }
static void json_add_recipients(JsonBuilder *builder, MuMsg *msg) { InternetAddressList *addr_from; InternetAddressList *addr_to; InternetAddressList *addr_cc; addr_from = internet_address_list_parse_string( mu_msg_get_from (msg) ); if (addr_from) { json_builder_set_member_name (builder, "from"); json_builder_begin_array (builder); json_add_address_list(builder, addr_from); json_builder_end_array (builder); g_object_unref(addr_from); } addr_to = internet_address_list_parse_string( mu_msg_get_to (msg) ); if (addr_to) { json_builder_set_member_name (builder, "to"); json_builder_begin_array (builder); json_add_address_list(builder, addr_to); json_builder_end_array (builder); g_object_unref(addr_to); } addr_cc = internet_address_list_parse_string( mu_msg_get_cc (msg) ); if (addr_cc) { json_builder_set_member_name (builder, "cc"); json_builder_begin_array (builder); json_add_address_list(builder, addr_cc); json_builder_end_array (builder); g_object_unref(addr_cc); } }