From 7b8a8a6a24d308bf758bd288528b9cf006da771d Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 7 Jun 2013 15:21:05 -0400 Subject: EMailFormatter: Remove the header API. Use the EMailPartHeaders API instead. --- em-format/e-mail-formatter.c | 255 ------------------------------------------- 1 file changed, 255 deletions(-) (limited to 'em-format/e-mail-formatter.c') diff --git a/em-format/e-mail-formatter.c b/em-format/e-mail-formatter.c index 6e022c1947..4c3c8d0ed1 100644 --- a/em-format/e-mail-formatter.c +++ b/em-format/e-mail-formatter.c @@ -51,8 +51,6 @@ struct _EMailFormatterPrivate { gchar *charset; gchar *default_charset; - - GQueue *header_list; }; struct _AsyncContext { @@ -355,12 +353,6 @@ e_mail_formatter_finalize (GObject *object) g_free (priv->charset); g_free (priv->default_charset); - if (priv->header_list) { - e_mail_formatter_clear_headers (E_MAIL_FORMATTER (object)); - g_queue_free (priv->header_list); - priv->header_list = NULL; - } - g_mutex_clear (&priv->property_lock); /* Chain up to parent's finalize() method. */ @@ -767,8 +759,6 @@ e_mail_formatter_init (EMailFormatter *formatter) formatter->priv = E_MAIL_FORMATTER_GET_PRIVATE (formatter); g_mutex_init (&formatter->priv->property_lock); - formatter->priv->header_list = g_queue_new (); - e_mail_formatter_set_default_headers (formatter); } static void @@ -1438,248 +1428,3 @@ e_mail_formatter_set_default_charset (EMailFormatter *formatter, g_object_notify (G_OBJECT (formatter), "default-charset"); } -/* note: also copied in em-mailer-prefs.c */ -static const struct { - const gchar *name; - guint32 flags; -} default_headers[] = { - { N_("From"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Reply-To"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("To"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Cc"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Bcc"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Subject"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Date"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Newsgroups"), E_MAIL_FORMATTER_HEADER_FLAG_BOLD }, - { N_("Face"), 0 }, -}; - -/** - * e_mail_formatter_dup_headers: - * @formatter: an #EMailFormatter - * - * Returns copy of a list of currently set headers. - * - * Returns: (transfer-full): A new #GQueue of currently set headers; - * the pointer should be freed when no longer needed with command: - * g_queue_free_full (queue, (GDestroyNotify) e_mail_formatter_header_free); - */ -GQueue * -e_mail_formatter_dup_headers (EMailFormatter *formatter) -{ - GQueue *header_list; - GList *head, *link; - - g_return_val_if_fail (E_IS_MAIL_FORMATTER (formatter), NULL); - - g_mutex_lock (&formatter->priv->property_lock); - - header_list = g_queue_new (); - - head = g_queue_peek_head_link (formatter->priv->header_list); - - for (link = head; link != NULL; link = g_list_next (link)) { - const EMailFormatterHeader *header = link->data; - EMailFormatterHeader *copy; - - /* FIXME Need to guarantee this is never NULL. */ - if (header != NULL) { - copy = e_mail_formatter_header_copy (header); - g_queue_push_tail (header_list, copy); - } - } - - g_mutex_unlock (&formatter->priv->property_lock); - - return header_list; -} - -/** - * e_mail_formatter_clear_headers: - * @formatter: an #EMailFormatter - * - * Clear the list of headers to be displayed. This will force all headers to - * be shown. - **/ -void -e_mail_formatter_clear_headers (EMailFormatter *formatter) -{ - EMailFormatterHeader *header; - - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - - g_mutex_lock (&formatter->priv->property_lock); - - while (!g_queue_is_empty (formatter->priv->header_list)) { - header = g_queue_pop_head (formatter->priv->header_list); - e_mail_formatter_header_free (header); - } - - g_mutex_unlock (&formatter->priv->property_lock); -} - -/** - * e_mail_formatter_set_default_headers: - * @formatter: an #EMailFormatter - * - * Clear the list of headers and sets the default ones, e.g. "To", "From", "Cc" - * "Subject", etc... - */ -void -e_mail_formatter_set_default_headers (EMailFormatter *formatter) -{ - gint ii; - - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - - /* Set the default headers */ - e_mail_formatter_clear_headers (formatter); - for (ii = 0; ii < G_N_ELEMENTS (default_headers); ii++) { - e_mail_formatter_add_header ( - formatter, default_headers[ii].name, NULL, - default_headers[ii].flags); - } -} - -/** - * e_mail_formatter_add_header: - * @formatter: - * @name: The name of the header, as it will appear during output. - * @value: Value of the header. Can be %NULL. - * @flags: a set of #EMailFormatterHeaderFlags to control display attributes. - * - * Add a specific header to show. If any headers are set, they will - * be displayed in the order set by this function. Certain known - * headers included in this list will be shown using special - * formatting routines. - **/ -void -e_mail_formatter_add_header (EMailFormatter *formatter, - const gchar *name, - const gchar *value, - EMailFormatterHeaderFlags flags) -{ - EMailFormatterHeader header; - - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - g_return_if_fail (name != NULL && *name != '\0'); - - header.name = (gchar *) name; - header.value = (gchar *) value; - header.flags = flags; - - e_mail_formatter_add_header_struct (formatter, &header); -} - -void -e_mail_formatter_add_header_struct (EMailFormatter *formatter, - const EMailFormatterHeader *header) -{ - EMailFormatterHeader *copy; - - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - g_return_if_fail (header != NULL); - - g_mutex_lock (&formatter->priv->property_lock); - - copy = e_mail_formatter_header_copy (header); - g_queue_push_tail (formatter->priv->header_list, copy); - - g_mutex_unlock (&formatter->priv->property_lock); - - g_signal_emit (formatter, signals[NEED_REDRAW], 0, NULL); -} - -void -e_mail_formatter_remove_header (EMailFormatter *formatter, - const gchar *name, - const gchar *value) -{ - GQueue trash = G_QUEUE_INIT; - GList *head, *link; - - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - g_return_if_fail (name != NULL && *name != '\0'); - - g_mutex_lock (&formatter->priv->property_lock); - - head = g_queue_peek_head_link (formatter->priv->header_list); - - for (link = head; link != NULL; link = g_list_next (link)) { - EMailFormatterHeader *header = link->data; - - if (g_strcmp0 (name, header->name) == 0) { - if (header->value == NULL || *header->value == '\0') { - g_queue_push_tail (&trash, link); - /* do not break */ - } else if (value == NULL || *value == '\0') { - g_queue_push_tail (&trash, link); - break; - } else if (g_strcmp0 (value, header->value) == 0) { - g_queue_push_tail (&trash, link); - break; - } - } - } - - while (!g_queue_is_empty (&trash)) { - link = g_queue_pop_head (&trash); - e_mail_formatter_header_free (link->data); - g_queue_delete_link (formatter->priv->header_list, link); - } - - g_mutex_unlock (&formatter->priv->property_lock); -} - -void -e_mail_formatter_remove_header_struct (EMailFormatter *formatter, - const EMailFormatterHeader *header) -{ - g_return_if_fail (E_IS_MAIL_FORMATTER (formatter)); - g_return_if_fail (header != NULL); - - e_mail_formatter_remove_header ( - formatter, header->name, header->value); -} - -EMailFormatterHeader * -e_mail_formatter_header_new (const gchar *name, - const gchar *value) -{ - EMailFormatterHeader *header; - - g_return_val_if_fail (name != NULL && *name != '\0', NULL); - - header = g_new0 (EMailFormatterHeader, 1); - header->name = g_strdup (name); - if (value != NULL && *value != '\0') - header->value = g_strdup (value); - - return header; -} - -EMailFormatterHeader * -e_mail_formatter_header_copy (const EMailFormatterHeader *header) -{ - EMailFormatterHeader *copy; - - g_return_val_if_fail (header != NULL, NULL); - - copy = g_new0 (EMailFormatterHeader, 1); - copy->name = g_strdup (header->name); - copy->value = g_strdup (header->value); - copy->flags = header->flags; - - return copy; -} - -void -e_mail_formatter_header_free (EMailFormatterHeader *header) -{ - g_return_if_fail (header != NULL); - - g_free (header->name); - g_free (header->value); - - g_free (header); -} -- cgit