とつぶやいている人がいて、なるほどと思ったので、やってみました。
- text/plain,text/htmlのみからなるメールについては小さなメールアイコンを表示
- それ以外は従来通りクリップアイコンを表示
という動作をするようにしてみました。
上記を実現するためのパッチは以下の通りです。
diff -uNr '--exclude=.svn' sylpheed.orig/src/icons/htmlmail.xpm sylpheed.rev/src/icons/htmlmail.xpm
--- sylpheed.orig/src/icons/htmlmail.xpm 1970-01-01 09:00:00.000000000 +0900
+++ sylpheed.rev/src/icons/htmlmail.xpm 2012-08-18 16:29:42.000000000 +0900
@@ -0,0 +1,44 @@
+
+static char *htmlmail_xpm[] = {
+"8 12 28 1",
+" c None",
+"B c #000000",
+"C c #474747",
+"D c #F5F5F5",
+"E c #323232",
+"F c #F4F4F4",
+"G c #C1C1C1",
+"H c #EAEAEA",
+"I c #EBEBEB",
+"J c #AAAAAA",
+"K c #3D3D3D",
+"L c #EFEFEF",
+"M c #F3F3F3",
+"N c #3F3F3F",
+"O c #464646",
+"P c #BDBDBD",
+"Q c #D6D6D6",
+"R c #A0A0A0",
+"S c #F2F2F2",
+"T c #BABABA",
+"U c #E9E9E9",
+"V c #8C8C8C",
+"W c #BFBFBF",
+"X c #DADADA",
+"Y c #CDCDCD",
+"Z c #A7A7A7",
+"a c #D3D3D3",
+"b c #282828",
+" ",
+" ",
+" ",
+" BBBBBB ",
+"BBDDDDBB",
+"BDCLDCDB",
+"BDDCCDDB",
+"BDCGGCDB",
+"BCDDDDCB",
+" BBBBBB ",
+" ",
+" "
+};
diff -uNr '--exclude=.svn' sylpheed.orig/src/stock_pixmap.c sylpheed.rev/src/stock_pixmap.c
--- sylpheed.orig/src/stock_pixmap.c 2012-08-18 16:28:20.000000000 +0900
+++ sylpheed.rev/src/stock_pixmap.c 2012-08-18 16:29:20.000000000 +0900
@@ -34,6 +34,7 @@
#include "icons/deleted.xpm"
#include "icons/error.xpm"
#include "icons/forwarded.xpm"
+#include "icons/htmlmail.xpm"
#include "icons/interface.xpm"
#include "icons/jpilot.xpm"
#include "icons/ldap.xpm"
@@ -110,6 +111,7 @@
{error_xpm , NULL, NULL},
{forwarded_xpm , NULL, NULL},
{NULL, NULL, NULL, NULL, group, sizeof(group), "group", 0},
+ {htmlmail_xpm , NULL, NULL},
{interface_xpm , NULL, NULL},
{jpilot_xpm , NULL, NULL},
{ldap_xpm , NULL, NULL},
diff -uNr '--exclude=.svn' sylpheed.orig/src/stock_pixmap.h sylpheed.rev/src/stock_pixmap.h
--- sylpheed.orig/src/stock_pixmap.h 2012-08-18 16:28:20.000000000 +0900
+++ sylpheed.rev/src/stock_pixmap.h 2012-08-18 16:29:20.000000000 +0900
@@ -38,6 +38,7 @@
STOCK_PIXMAP_ERROR,
STOCK_PIXMAP_FORWARDED,
STOCK_PIXMAP_GROUP,
+ STOCK_PIXMAP_HTMLMAIL,
STOCK_PIXMAP_INTERFACE,
STOCK_PIXMAP_JPILOT,
STOCK_PIXMAP_LDAP,
diff -uNr '--exclude=.svn' sylpheed.orig/src/summaryview.c sylpheed.rev/src/summaryview.c
--- sylpheed.orig/src/summaryview.c 2012-08-18 16:28:20.000000000 +0900
+++ sylpheed.rev/src/summaryview.c 2012-08-18 16:38:22.000000000 +0900
@@ -139,6 +139,7 @@
static GdkPixbuf *forwarded_pixbuf;
static GdkPixbuf *clip_pixbuf;
+static GdkPixbuf *htmlmail_pixbuf;
static void summary_clear_list_full (SummaryView *summaryview,
gboolean is_refresh);
@@ -624,6 +625,8 @@
&forwarded_pixbuf);
stock_pixbuf_gdk(summaryview->treeview, STOCK_PIXMAP_CLIP,
&clip_pixbuf);
+ stock_pixbuf_gdk(summaryview->treeview, STOCK_PIXMAP_HTMLMAIL,
+ &htmlmail_pixbuf);
font_desc = pango_font_description_new();
size = pango_font_description_get_size
@@ -2416,6 +2419,7 @@
MsgFlags flags;
GdkColor color;
gint color_val;
+ MimeInfo *mimeinfo = NULL;
if (!msginfo) {
GET_MSG_INFO(msginfo, iter);
@@ -2473,8 +2477,23 @@
else if (MSG_IS_FORWARDED(flags))
unread_pix = forwarded_pixbuf;
- if (MSG_IS_MIME(flags))
- mime_pix = clip_pixbuf;
+ if (MSG_IS_MIME(flags)) {
+ mimeinfo = procmime_scan_message(msginfo);
+ while (mimeinfo) {
+ if (mimeinfo->mime_type != MIME_TEXT &&
+ mimeinfo->mime_type != MIME_TEXT_HTML &&
+ mimeinfo->mime_type != MIME_MULTIPART) {
+ break;
+ } else {
+ mimeinfo = procmime_mimeinfo_next(mimeinfo);
+ }
+ }
+ if (mimeinfo) {
+ mime_pix = clip_pixbuf;
+ } else {
+ mime_pix = htmlmail_pixbuf;
+ }
+ }
if (prefs_common.bold_unread) {
if (MSG_IS_UNREAD(flags))