From 10dd02bce0af2248f03563c7d5d2dcffec3e6145 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 4 Mar 2011 14:01:03 +0100 Subject: Bug #643693 - Crash opening attached text/html mail --- plugins/prefer-plain/prefer-plain.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index 21c5a6b625..50b0d2852a 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -70,9 +70,25 @@ make_part_attachment (EMFormat *format, CamelStream *stream, CamelMimePart *part em_format_part_as ( format, stream, part, "application/octet-stream", NULL); - } else + } else if (i == -1 && CAMEL_IS_MIME_MESSAGE (part)) { + /* message was asked to be formatted as text/html; + might be for cases where message itself is a text/html part */ + CamelMimePart *new_part; + CamelDataWrapper *content; + + content = camel_medium_get_content (CAMEL_MEDIUM (part)); + g_return_if_fail (content != NULL); + + new_part = camel_mime_part_new (); + camel_medium_set_content (CAMEL_MEDIUM (new_part), content); + + em_format_part (format, stream, new_part, NULL); + + g_object_unref (new_part); + } else { /* FIXME Not passing a GCancellable here. */ em_format_part (format, stream, part, NULL); + } g_string_truncate (format->part_id, partidlen); } -- cgit v1.2.3 From 54da4fc09cf226fdb59b9f0c70555e2e57dc1f91 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 8 May 2011 13:24:42 -0400 Subject: Coding style cleanups. --- plugins/prefer-plain/prefer-plain.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index 50b0d2852a..71bcd41f56 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -122,7 +122,7 @@ export_as_attachments (CamelMultipart *mp, EMFormat *format, CamelStream *stream part = camel_multipart_get_part (mp, i); if (part != except) { - CamelMultipart *multipart = (CamelMultipart *)camel_medium_get_content ((CamelMedium *)part); + CamelMultipart *multipart = (CamelMultipart *) camel_medium_get_content ((CamelMedium *) part); if (CAMEL_IS_MULTIPART (multipart)) { export_as_attachments (multipart, format, stream, except); @@ -136,7 +136,7 @@ export_as_attachments (CamelMultipart *mp, EMFormat *format, CamelStream *stream void org_gnome_prefer_plain_multipart_alternative (gpointer ep, EMFormatHookTarget *t) { - CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content ((CamelMedium *)t->part); + CamelMultipart *mp = (CamelMultipart *) camel_medium_get_content ((CamelMedium *) t->part); CamelMimePart *part, *display_part = NULL, *calendar_part = NULL; gint i, nparts, partidlen, displayid = 0, calendarid = 0; @@ -292,7 +292,7 @@ org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookIte gtk_widget_show (check); g_signal_connect (check, "toggled", G_CALLBACK (epp_show_suppressed_toggled), NULL); - dropdown = (GtkComboBox *)gtk_combo_box_new (); + dropdown = (GtkComboBox *) gtk_combo_box_new (); cell = gtk_cell_renderer_text_new (); store = gtk_list_store_new (1, G_TYPE_STRING); for (i = 0; i < G_N_ELEMENTS (epp_options); i++) { @@ -300,16 +300,16 @@ org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookIte gtk_list_store_set (store, &iter, 0, _(epp_options[i].label), -1); } - gtk_cell_layout_pack_start ((GtkCellLayout *)dropdown, cell, TRUE); + gtk_cell_layout_pack_start ((GtkCellLayout *) dropdown, cell, TRUE); gtk_cell_layout_set_attributes((GtkCellLayout *)dropdown, cell, "text", 0, NULL); - gtk_combo_box_set_model (dropdown, (GtkTreeModel *)store); + gtk_combo_box_set_model (dropdown, (GtkTreeModel *) store); /*gtk_combo_box_set_active(dropdown, -1);*/ gtk_combo_box_set_active (dropdown, epp_mode); - gtk_widget_show ((GtkWidget *)dropdown); + gtk_widget_show ((GtkWidget *) dropdown); dropdown_label = gtk_label_new_with_mnemonic (_("HTML _Mode")); gtk_widget_show (dropdown_label); - gtk_label_set_mnemonic_widget (GTK_LABEL (dropdown_label), (GtkWidget *)dropdown); + gtk_label_set_mnemonic_widget (GTK_LABEL (dropdown_label), (GtkWidget *) dropdown); info = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (info), 0.0, 0.5); @@ -321,14 +321,14 @@ org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookIte g_signal_connect (dropdown, "changed", G_CALLBACK(epp_mode_changed), info); g_object_get (data->parent, "n-rows", &i, NULL); - gtk_table_attach ((GtkTable *)data->parent, check, 0, 2, i, i + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); - gtk_table_attach ((GtkTable *)data->parent, dropdown_label, 0, 1, i + 1, i + 2, 0, 0, 0, 0); - gtk_table_attach ((GtkTable *)data->parent, (GtkWidget *)dropdown, 1, 2, i + 1, i + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0); - gtk_table_attach ((GtkTable *)data->parent, info, 1, 2, i + 2, i + 3, GTK_FILL | GTK_EXPAND, 0, 0, 0); + gtk_table_attach ((GtkTable *) data->parent, check, 0, 2, i, i + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); + gtk_table_attach ((GtkTable *) data->parent, dropdown_label, 0, 1, i + 1, i + 2, 0, 0, 0, 0); + gtk_table_attach ((GtkTable *) data->parent, (GtkWidget *) dropdown, 1, 2, i + 1, i + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0); + gtk_table_attach ((GtkTable *) data->parent, info, 1, 2, i + 2, i + 3, GTK_FILL | GTK_EXPAND, 0, 0, 0); /* since this isnt dynamic, we don't need to track each item */ - return (GtkWidget *)dropdown; + return (GtkWidget *) dropdown; } gint e_plugin_lib_enable (EPlugin *ep, gint enable); -- cgit v1.2.3 From c24038c4f62f37b89d1bda9542ca5ccc843d4ea0 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 27 May 2011 15:23:07 +0200 Subject: Bug #646109 - Fix use of include to make sure translations work --- plugins/prefer-plain/prefer-plain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index 71bcd41f56..ce51ffeefd 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -21,7 +21,7 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif #include -- cgit v1.2.3 From 777c1cbd40eb63365f2c28e38f6a93beb2d1c9d1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 16 Aug 2011 11:25:56 -0400 Subject: Coding style and whitespace cleanup. --- plugins/prefer-plain/prefer-plain.c | 64 +++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 20 deletions(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index ce51ffeefd..55f62f8e3d 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -36,7 +36,7 @@ void org_gnome_prefer_plain_multipart_alternative (gpointer ep, EMFormatHookTarget *t); void org_gnome_prefer_plain_text_html (gpointer ep, EMFormatHookTarget *t); -GtkWidget *org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookItemFactoryData *data); +GtkWidget *org_gnome_prefer_plain_config_mode (EPlugin *epl, struct _EConfigHookItemFactoryData *data); enum { EPP_NORMAL, @@ -49,7 +49,10 @@ static gint epp_mode = -1; static gboolean epp_show_suppressed = TRUE; static void -make_part_attachment (EMFormat *format, CamelStream *stream, CamelMimePart *part, gint i) +make_part_attachment (EMFormat *format, + CamelStream *stream, + CamelMimePart *part, + gint i) { gint partidlen = format->part_id->len; @@ -72,7 +75,7 @@ make_part_attachment (EMFormat *format, CamelStream *stream, CamelMimePart *part "application/octet-stream", NULL); } else if (i == -1 && CAMEL_IS_MIME_MESSAGE (part)) { /* message was asked to be formatted as text/html; - might be for cases where message itself is a text/html part */ + * might be for cases where message itself is a text/html part */ CamelMimePart *new_part; CamelDataWrapper *content; @@ -94,7 +97,8 @@ make_part_attachment (EMFormat *format, CamelStream *stream, CamelMimePart *part } void -org_gnome_prefer_plain_text_html (gpointer ep, EMFormatHookTarget *t) +org_gnome_prefer_plain_text_html (gpointer ep, + EMFormatHookTarget *t) { /* In text-only mode, all html output is suppressed for the first processing */ if (epp_mode != EPP_TEXT @@ -109,7 +113,10 @@ org_gnome_prefer_plain_text_html (gpointer ep, EMFormatHookTarget *t) } static void -export_as_attachments (CamelMultipart *mp, EMFormat *format, CamelStream *stream, CamelMimePart *except) +export_as_attachments (CamelMultipart *mp, + EMFormat *format, + CamelStream *stream, + CamelMimePart *except) { gint i, nparts; CamelMimePart *part; @@ -134,7 +141,8 @@ export_as_attachments (CamelMultipart *mp, EMFormat *format, CamelStream *stream } void -org_gnome_prefer_plain_multipart_alternative (gpointer ep, EMFormatHookTarget *t) +org_gnome_prefer_plain_multipart_alternative (gpointer ep, + EMFormatHookTarget *t) { CamelMultipart *mp = (CamelMultipart *) camel_medium_get_content ((CamelMedium *) t->part); CamelMimePart *part, *display_part = NULL, *calendar_part = NULL; @@ -146,11 +154,12 @@ org_gnome_prefer_plain_multipart_alternative (gpointer ep, EMFormatHookTarget *t if (epp_mode == EPP_NORMAL) { gboolean have_plain = FALSE; - /* Try to find text/html part even when not as last and force to show it. - Old handler will show the last part of multipart/alternate, but if we - can offer HTML, then offer it, regardless of position in multipart. - But do this when have only text/plain and text/html parts, not more. - */ + /* Try to find text/html part even when not as last and force + * to show it. Old handler will show the last part of + * multipart/alternate, but if we can offer HTML, then + * offer it, regardless of position in multipart. But do + * this when have only text/plain and text/html parts, + * not more. */ nparts = camel_multipart_get_number (mp); for (i = 0; i < nparts; i++) { CamelContentType *content_type; @@ -196,7 +205,7 @@ org_gnome_prefer_plain_multipart_alternative (gpointer ep, EMFormatHookTarget *t } nparts = camel_multipart_get_number (mp); - for (i=0; i", _(epp_options[mode > 2 ? 0 : mode].description), "", NULL); @@ -254,7 +274,8 @@ update_info_label (GtkWidget *info_label, guint mode) } static void -epp_mode_changed (GtkComboBox *dropdown, GtkWidget *info_label) +epp_mode_changed (GtkComboBox *dropdown, + GtkWidget *info_label) { epp_mode = gtk_combo_box_get_active (dropdown); if (epp_mode > 2) @@ -265,7 +286,8 @@ epp_mode_changed (GtkComboBox *dropdown, GtkWidget *info_label) } static void -epp_show_suppressed_toggled (GtkToggleButton *check, gpointer data) +epp_show_suppressed_toggled (GtkToggleButton *check, + gpointer data) { g_return_if_fail (check != NULL); @@ -274,7 +296,8 @@ epp_show_suppressed_toggled (GtkToggleButton *check, gpointer data) } GtkWidget * -org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookItemFactoryData *data) +org_gnome_prefer_plain_config_mode (EPlugin *epl, + struct _EConfigHookItemFactoryData *data) { /*EMConfigTargetPrefs *ep = (EMConfigTargetPrefs *)data->target;*/ GtkComboBox *dropdown; @@ -334,7 +357,8 @@ org_gnome_prefer_plain_config_mode (struct _EPlugin *epl, struct _EConfigHookIte gint e_plugin_lib_enable (EPlugin *ep, gint enable); gint -e_plugin_lib_enable (EPlugin *ep, gint enable) +e_plugin_lib_enable (EPlugin *ep, + gint enable) { gchar *key; gint i; -- cgit v1.2.3 From 3dc5ac02b4acf762c22a2f1980facdd0d01d678e Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Fri, 14 Oct 2011 12:25:34 +0200 Subject: Migrate prefer-plain plugin to GSettings --- plugins/prefer-plain/prefer-plain.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index 55f62f8e3d..907e562c29 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -26,7 +26,6 @@ #include #include -#include #include #include @@ -44,7 +43,7 @@ enum { EPP_TEXT }; -static GConfClient *epp_gconf = NULL; +static GSettings *epp_settings = NULL; static gint epp_mode = -1; static gboolean epp_show_suppressed = TRUE; @@ -281,7 +280,7 @@ epp_mode_changed (GtkComboBox *dropdown, if (epp_mode > 2) epp_mode = 0; - gconf_client_set_string(epp_gconf, "/apps/evolution/eplugin/prefer_plain/mode", epp_options[epp_mode].key, NULL); + g_settings_set_string (epp_settings, "mode", epp_options[epp_mode].key); update_info_label (info_label, epp_mode); } @@ -292,7 +291,7 @@ epp_show_suppressed_toggled (GtkToggleButton *check, g_return_if_fail (check != NULL); epp_show_suppressed = gtk_toggle_button_get_active (check); - gconf_client_set_bool (epp_gconf, "/apps/evolution/eplugin/prefer_plain/show_suppressed", epp_show_suppressed, NULL); + g_settings_set_boolean (epp_settings, "show-suppressed", epp_show_suppressed); } GtkWidget * @@ -363,14 +362,13 @@ e_plugin_lib_enable (EPlugin *ep, gchar *key; gint i; - if (epp_gconf || epp_mode != -1) + if (epp_settings || epp_mode != -1) return 0; if (enable) { - GConfValue *val; - epp_gconf = gconf_client_get_default (); - key = gconf_client_get_string(epp_gconf, "/apps/evolution/eplugin/prefer_plain/mode", NULL); + epp_settings = g_settings_new ("org.gnome.evolution.eplugin.prefer-plain"); + key = g_settings_get_string (epp_settings, "mode"); if (key) { for (i = 0; i < G_N_ELEMENTS (epp_options); i++) { if (!strcmp (epp_options[i].key, key)) { @@ -383,16 +381,11 @@ e_plugin_lib_enable (EPlugin *ep, epp_mode = 0; } - val = gconf_client_get (epp_gconf, "/apps/evolution/eplugin/prefer_plain/show_suppressed", NULL); - if (val) { - epp_show_suppressed = gconf_value_get_bool (val); - gconf_value_free (val); - } else - epp_show_suppressed = TRUE; + epp_show_suppressed = g_settings_get_boolean (epp_settings, "show-suppressed"); } else { - if (epp_gconf) { - g_object_unref (epp_gconf); - epp_gconf = NULL; + if (epp_settings) { + g_object_unref (epp_settings); + epp_settings = NULL; } } -- cgit v1.2.3 From 2e60b6a4a21105bb4a1e2badd1be51b3e684d165 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 22 Nov 2011 17:53:07 -0500 Subject: Tweak GSettings schemas. - Don't use the term "eplugin" for modules. - Use the term "plugin" instead of "eplugin" for plugins. - Split SpamAssassin settings into a separate schema. --- plugins/prefer-plain/prefer-plain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/prefer-plain/prefer-plain.c') diff --git a/plugins/prefer-plain/prefer-plain.c b/plugins/prefer-plain/prefer-plain.c index 907e562c29..c46e903ec0 100644 --- a/plugins/prefer-plain/prefer-plain.c +++ b/plugins/prefer-plain/prefer-plain.c @@ -367,7 +367,7 @@ e_plugin_lib_enable (EPlugin *ep, if (enable) { - epp_settings = g_settings_new ("org.gnome.evolution.eplugin.prefer-plain"); + epp_settings = g_settings_new ("org.gnome.evolution.plugin.prefer-plain"); key = g_settings_get_string (epp_settings, "mode"); if (key) { for (i = 0; i < G_N_ELEMENTS (epp_options); i++) { -- cgit v1.2.3