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); }
struct _JsonNode* mu_msg_to_json (MuMsg *msg, unsigned docid, const MuMsgIterThreadInfo *ti, MuMsgOptions opts) { JsonNode *node; JsonBuilder *bob; time_t t; size_t s; g_return_val_if_fail (msg, NULL); g_return_val_if_fail (!((opts & MU_MSG_OPTION_HEADERS_ONLY) && (opts & MU_MSG_OPTION_EXTRACT_IMAGES)),NULL); bob = json_builder_new (); bob = json_builder_begin_object (bob); if (ti) add_thread_info (bob, ti); add_string_member (bob, "subject", mu_msg_get_subject (msg)); /* in the no-headers-only case (see below) we get a more complete list * of contacts, so no need to get them here if that's the case */ if (opts & MU_MSG_OPTION_HEADERS_ONLY) add_contacts (bob, msg); t = mu_msg_get_date (msg); if (t != (time_t)-1) add_int_member (bob, "date", t); s = mu_msg_get_size (msg); if (s != (size_t)-1) add_int_member (bob, "size", s); add_string_member (bob, "message-id", mu_msg_get_msgid (msg)); add_string_member (bob, "mailing-list", mu_msg_get_mailing_list (msg)); add_string_member (bob, "path", mu_msg_get_path (msg)); add_string_member (bob, "maildir", mu_msg_get_maildir (msg)); add_string_member (bob, "priority", mu_msg_prio_name(mu_msg_get_prio(msg))); add_flags (bob, msg); add_list_member (bob, "tags", mu_msg_get_tags(msg)); add_list_member (bob, "references", mu_msg_get_references (msg)); add_string_member (bob, "in-reply-to", mu_msg_get_header (msg, "In-Reply-To")); /* headers are retrieved from the database, views from the * message file file attr things can only be gotten from the * file (ie., mu view), not from the database (mu find). */ if (!(opts & MU_MSG_OPTION_HEADERS_ONLY)) add_file_parts (bob, msg, opts); bob = json_builder_end_object (bob); node = json_builder_get_root (bob); g_clear_object (&bob); return node; }
static SCM get_prio_scm (MuMsg *msg) { switch (mu_msg_get_prio (msg)) { case MU_MSG_PRIO_LOW: return SYMB_PRIO_LOW; case MU_MSG_PRIO_NORMAL: return SYMB_PRIO_NORMAL; case MU_MSG_PRIO_HIGH: return SYMB_PRIO_HIGH; default: g_return_val_if_reached (SCM_UNDEFINED); } }