} else {
do {
gchar *content_type = NULL;
- gchar *content_disp;
- gboolean has_content_disp;
-
+
part = TNY_MIME_PART(tny_iterator_get_current (iter));
if (!part) {
g_object_unref (part);
tny_iterator_next (iter);
continue;
- }
+ }
+
/* we need to strdown the content type, because
* tny_mime_part_has_content_type does not do it...
*/
content_type = g_ascii_strdown (tny_mime_part_get_content_type (part), -1);
-
- /* mime-parts with a content-disposition header (either 'inline' or 'attachment')
- * cannot be body parts
- */
- content_disp = modest_tny_mime_part_get_header_value (part, "Content-Disposition");
- has_content_disp = content_disp && strlen (content_disp) != 0;
- g_free (content_disp);
-
- if (g_str_has_prefix (content_type, desired_mime_type) && !has_content_disp) {
+
+ if (g_str_has_prefix (content_type, desired_mime_type) && !tny_mime_part_is_attachment (part)) {
/* we found the desired mime-type! */
g_free (content_type);
break;
gchar*
-modest_tny_mime_part_get_header_value (TnyMimePart *part, const gchar *header)
+modest_tny_msg_get_header (TnyMsg *msg, const gchar *header)
{
TnyList *pairs;
TnyIterator *iter;
gchar *val;
- g_return_val_if_fail (part && TNY_IS_MIME_PART(part), NULL);
+ g_return_val_if_fail (msg && TNY_IS_MSG(msg), NULL);
g_return_val_if_fail (header, NULL);
pairs = tny_simple_list_new ();
-
- tny_mime_part_get_header_pairs (part, pairs);
+
+ tny_mime_part_get_header_pairs (TNY_MIME_PART(msg), pairs);
iter = tny_list_create_iterator (pairs);
val = NULL;
}
-/* we consider more things attachments than tinymail does...
- */
-gboolean
-modest_tny_mime_part_is_attachment_for_modest (TnyMimePart *part)
-{
- gchar *content_disp;
- gchar *content_type;
- gboolean has_content_disp;
-
- g_return_val_if_fail (part && TNY_IS_MIME_PART(part), FALSE);
-
- /* if tinymail thinks it's an attachment, it definitely is */
- if (tny_mime_part_is_attachment (part))
- return TRUE;
-
- /* if the mime part is a message itself (ie. embedded), it's an attachment */
- if (TNY_IS_MSG (part))
- return TRUE;
-
- content_disp = modest_tny_mime_part_get_header_value (part, "Content-Disposition");
- has_content_disp = content_disp && strlen (content_disp) != 0;
- g_free (content_disp);
-
- /* if it doesn't have a content deposition, it's not an attachment */
- if (!content_disp)
- return FALSE;
-
- /* ok, it must be content-disposition "inline" then, because "attachment"
- * is already handle above "...is_attachment". modest consider these "inline" things
- * attachments as well, unless they are embedded images for html mail
- */
- content_type = g_ascii_strdown (tny_mime_part_get_content_type (part), -1);
- if (!g_str_has_prefix (content_type, "image/")) {
- g_free (content_type);
- return TRUE; /* it's not an image, so it must be an attachment */
- }
- g_free (content_type);
-
-
- /* now, if it's an inline-image, and it has a content-id or location, we
- * we guess it's an inline image, and not an attachment */
- if (tny_mime_part_get_content_id (part) || tny_mime_part_get_content_location(part))
- return FALSE;
-
- /* in other cases... */
- return TRUE;
-}
-
-
-
-
static gint
count_addresses (const gchar* addresses)
{
* for mailing lists, both the Reply-To: and From: should be included
* in the new To:; for now, we're ignoring List-Post
*/
- gchar* list_help = modest_tny_mime_part_get_header_value (TNY_MIME_PART(msg),
- "List-Help");
+ gchar* list_help = modest_tny_msg_get_header (msg, "List-Help");
gboolean is_mailing_list = (list_help != NULL);
g_free (list_help);
/* reply to sender, use ReplyTo or From */
//old_reply_to = tny_header_get_replyto (header);
- old_reply_to = modest_tny_mime_part_get_header_value (TNY_MIME_PART(msg),
- "Reply-To");
+ old_reply_to = modest_tny_msg_get_header (msg, "Reply-To");
old_from = tny_header_get_from (header);
if (!old_from && !old_reply_to) {
/**
- * modest_tny_mime_part_get_header_value:
- * @self: some #TnyMimePart
- * @header: the header to get the value for
+ * modest_tny_msg_get_header:
+ * @self: some #TnyMsg
+ * @header: the header to get
*
- * gets the mail header value for a #TnyMimePart as a newly allocated string,
+ * gets the mail header for a #TnyMsg as a newly allocated string,
* or NULL if it cannot be found
*
- * NOTE: this function should be part of tinymail, or maybe modest-tny-mime-part....
- *
- * Returns: the header value or NULL
- **/
-gchar* modest_tny_mime_part_get_header_value (TnyMimePart *part, const gchar *header);
-
-
-/**
- * modest_tny_mime_part_is_attachment_for_modest:
- * @self: some #TnyMimePart
- *
- * determine whether the given mime part is an attachment; note modest considers
- * more things attachments than tinymail does; in particular, modest considers
- * non-image 'inline' things to be attachments; check the source for details
- *
- * NOTE: this function should maybe in modest-tny-mime-part....
- *
- * Returns: TRUE if it's attachment for modest, or FALSE otherwise
+ * Returns: the header
**/
-gboolean modest_tny_mime_part_is_attachment_for_modest (TnyMimePart *part);
+gchar* modest_tny_msg_get_header (TnyMsg *msg, const gchar *header);
/**
#include <modest-platform.h>
#include <modest-runtime.h>
-#include <modest-tny-msg.h>
#include <modest-attachment-view.h>
#include <modest-attachments-view.h>
return GTK_WIDGET (self);
}
-
-
-
-
void
modest_attachments_view_set_message (ModestAttachmentsView *attachments_view, TnyMsg *msg)
{
return;
}
+
parts = TNY_LIST (tny_simple_list_new ());
tny_mime_part_get_parts (TNY_MIME_PART (priv->msg), parts);
iter = tny_list_create_iterator (parts);
TnyMimePart *part;
part = TNY_MIME_PART (tny_iterator_get_current (iter));
- if (part && modest_tny_mime_part_is_attachment_for_modest(part)) {
+ if (part && (tny_mime_part_is_attachment (part) || TNY_IS_MSG (part))) {
modest_attachments_view_add_attachment (attachments_view, part);
}
}
gtk_widget_queue_draw (GTK_WIDGET (attachments_view));
-
+
}
void