diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-08-17 08:30:10 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-08-17 08:30:10 +0000 |
commit | 830583f24a6753bea7aae2704c41303ff6b0ad03 (patch) | |
tree | 78bbd60d973daa50284e506468fe73423eaf3374 /src/textview.c | |
parent | 2bec9e15edfdc196dd9bc9999d1c29046764c63d (diff) |
supported verification of encrypted and signed messages with combined method.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1127 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/textview.c')
-rw-r--r-- | src/textview.c | 72 |
1 files changed, 52 insertions, 20 deletions
diff --git a/src/textview.c b/src/textview.c index 02114915..8437c7d1 100644 --- a/src/textview.c +++ b/src/textview.c @@ -147,6 +147,10 @@ static GdkCursor *regular_cursor = NULL; static void textview_add_part (TextView *textview, MimeInfo *mimeinfo, FILE *fp); +#if USE_GPGME +static void textview_add_sig_part (TextView *textview, + MimeInfo *mimeinfo); +#endif static void textview_add_parts (TextView *textview, MimeInfo *mimeinfo, FILE *fp); @@ -473,6 +477,10 @@ void textview_show_message(TextView *textview, MimeInfo *mimeinfo, } textview_add_parts(textview, mimeinfo, fp); +#if USE_GPGME + if (mimeinfo->sigstatus) + textview_add_sig_part(textview, mimeinfo); +#endif fclose(fp); @@ -639,11 +647,12 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp) } #if USE_GPGME - if (mimeinfo->sigstatus) - g_snprintf(buf, sizeof(buf), "\n[%s (%s)]\n", - mimeinfo->content_type, mimeinfo->sigstatus); - else + if (mimeinfo->parent && mimeinfo->sigstatus) { + textview_add_sig_part(textview, mimeinfo); + return; + } #endif + if (mimeinfo->filename || mimeinfo->name) g_snprintf(buf, sizeof(buf), "\n[%s %s (%s)]\n", mimeinfo->filename ? mimeinfo->filename : @@ -655,22 +664,6 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp) mimeinfo->content_type, to_human_readable(mimeinfo->content_size)); -#if USE_GPGME - if (mimeinfo->sigstatus) { - const gchar *color; - if (!strcmp(mimeinfo->sigstatus, _("Good signature"))) - color = "good-signature"; - else if (!strcmp(mimeinfo->sigstatus, _("Valid signature (untrusted key)"))) - color = "untrusted-signature"; - else if (!strcmp(mimeinfo->sigstatus, _("BAD signature"))) - color = "bad-signature"; - else - color = "nocheck-signature"; - gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, buf, -1, - color, "mimepart", - NULL); - } else -#endif if (mimeinfo->mime_type != MIME_TEXT && mimeinfo->mime_type != MIME_TEXT_HTML) { gtk_text_buffer_insert_with_tags_by_name @@ -739,6 +732,45 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp) } } +#if USE_GPGME +static void textview_add_sig_part(TextView *textview, MimeInfo *mimeinfo) +{ + GtkTextView *text = GTK_TEXT_VIEW(textview->text); + GtkTextBuffer *buffer; + GtkTextIter iter; + gchar buf[BUFFSIZE]; + const gchar *color; + + if (!mimeinfo->sigstatus) + return; + + if (mimeinfo->parent) + g_snprintf(buf, sizeof(buf), "\n[%s (%s)]\n", + mimeinfo->content_type, mimeinfo->sigstatus); + else + g_snprintf(buf, sizeof(buf), "\n[%s (%s)]\n", + "signature", mimeinfo->sigstatus); + + if (!strcmp(mimeinfo->sigstatus, _("Good signature"))) + color = "good-signature"; + else if (!strcmp(mimeinfo->sigstatus, _("Valid signature (untrusted key)"))) + color = "untrusted-signature"; + else if (!strcmp(mimeinfo->sigstatus, _("BAD signature"))) + color = "bad-signature"; + else + color = "nocheck-signature"; + + buffer = gtk_text_view_get_buffer(text); + gtk_text_buffer_get_end_iter(buffer, &iter); + gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, buf, -1, + color, "mimepart", NULL); + if (mimeinfo->sigstatus_full) + gtk_text_buffer_insert_with_tags_by_name + (buffer, &iter, mimeinfo->sigstatus_full, -1, + "mimepart", NULL); +} +#endif + static void textview_add_parts(TextView *textview, MimeInfo *mimeinfo, FILE *fp) { gint level; |