diff options
author | Not Zed <NotZed@HelixCode.com> | 2000-10-04 23:59:18 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-10-04 23:59:18 +0800 |
commit | 91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4 (patch) | |
tree | 9ee36c63bd16ee87105042d3c062c2803c8b6e83 /mail/message-list.c | |
parent | 47a2f8444fed208beaa353c9d1da69c970e91d4c (diff) | |
download | gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar.gz gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar.bz2 gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar.lz gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar.xz gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.tar.zst gsoc2013-evolution-91951b638c64ef9c4f18b8ec4fc52a6d0541a3e4.zip |
Fix the attachment icon width. (content_is_attachment): Perform some
2000-10-04 Not Zed <NotZed@HelixCode.com>
* message-list.c (message_list_init_header): Fix the attachment icon width.
(content_is_attachment): Perform some simple tests to see if the
message contains an attachment.
(build_subtree): Kill a pointless warning.
svn path=/trunk/; revision=5707
Diffstat (limited to 'mail/message-list.c')
-rw-r--r-- | mail/message-list.c | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/mail/message-list.c b/mail/message-list.c index 74aecdb7fd..46c69ea556 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -59,6 +59,7 @@ #define N_CHARS(x) (CHAR_WIDTH * (x)) #define COL_ICON_WIDTH (16) +#define COL_ATTACH_WIDTH (16) #define COL_CHECK_BOX_WIDTH (16) #define COL_FROM_EXPANSION (24.0) #define COL_FROM_WIDTH_MIN (32) @@ -120,7 +121,11 @@ internet_address_new_from_string (const gchar *string) 1. "Jeffrey Stedfast" <fejj@helixcode.com> 2. fejj@helixcode.com 3. <fejj@helixcode.com> (Jeffrey Stedfast) + + notzed: actually we dont, this isn't spruce, the addresses have already been parsed by camel. + FIXME: This code wont handle multiple addresses. */ + InternetAddress *ia; gchar *name = NULL, *address = NULL; const gchar *ptr; @@ -652,6 +657,35 @@ subtree_unread(MessageList *ml, ETreePath *node) return FALSE; } +static gboolean +content_is_attachment(CamelMessageContentInfo *ci) +{ + CamelMessageContentInfo *child; + + /* no info about content */ + if (ci == NULL) + return FALSE; + + /* we assume multipart/mixed is an attachment always + other multipart / * is only an attachment if it contains multipart/mixed's, or + non-text parts */ + if (header_content_type_is(ci->type, "multipart", "*")) { + if (header_content_type_is(ci->type, "multipart", "mixed")) { + return TRUE; + } + child = ci->childs; + while (child) { + if (content_is_attachment(child)) { + return TRUE; + } + child = child->next; + } + return FALSE; + } else { + return !header_content_type_is(ci->type, "text", "*"); + } +} + static void * ml_tree_value_at (ETreeModel *etm, ETreePath *path, int col, void *model_data) { @@ -691,7 +725,10 @@ ml_tree_value_at (ETreeModel *etm, ETreePath *path, int col, void *model_data) } case COL_ATTACHMENT: - return GINT_TO_POINTER (0); + if (content_is_attachment(msg_info->content)) + return (void *)1; + else + return (void *)0; case COL_FROM: if (msg_info->from) @@ -954,7 +991,7 @@ message_list_init_header (MessageList *message_list) message_list->table_cols [COL_ATTACHMENT] = e_table_col_new_with_pixbuf ( COL_ATTACHMENT, states_pixmaps [4].pixbuf, - 0.0, COL_ICON_WIDTH, + 0.0, COL_ATTACH_WIDTH, message_list->render_attachment, g_int_compare, FALSE); @@ -1263,7 +1300,7 @@ folder_to_cachename(CamelFolder *folder, const char *prefix) { char *url, *p, *filename; - url = camel_url_to_string (CAMEL_SERVICE (folder->parent_store)->url, FALSE); + url = camel_url_to_string(CAMEL_SERVICE(folder->parent_store)->url, FALSE); for (p = url; *p; p++) { if (!isprint((unsigned char)*p) || strchr(" /'\"`&();|<>${}!", *p)) *p = '_'; @@ -1384,7 +1421,7 @@ build_subtree (MessageList *ml, ETreePath *parent, struct _container *c, int *ro ETreeModel *tree = E_TREE_MODEL (ml->table_model); ETreePath *node; char *id; - int expanded; + int expanded = FALSE; /* just removes a silly warning */ while (c) { if (c->message) { |