aboutsummaryrefslogtreecommitdiff
path: root/src/textview.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-08-17 08:30:10 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-08-17 08:30:10 +0000
commit830583f24a6753bea7aae2704c41303ff6b0ad03 (patch)
tree78bbd60d973daa50284e506468fe73423eaf3374 /src/textview.c
parent2bec9e15edfdc196dd9bc9999d1c29046764c63d (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.c72
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;