[evolution] Add a priority field for mail formatter and parser extensions.



commit ce3d24ef62437762e2e0b930cadb5c00580a4596
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Feb 1 09:15:23 2013 -0500

    Add a priority field for mail formatter and parser extensions.
    
    Add a priority field to EMailFormatterExtension and EMailParserExtension
    class structs.  Extension classes can then explicitly specify a priority
    with respect to other extension classes with the same MIME type, so that
    the order of extension registration doesn't matter.
    
    Priority field defaults to G_PRIORITY_DEFAULT.  Built-in formatters and
    extensions will use G_PRIORITY_LOW.  We can get more sophisticated with
    priority values if we need to, but this should suffice for now.

 em-format/e-mail-extension-registry.c             |   47 +++++++++++++++++++--
 em-format/e-mail-formatter-attachment-bar.c       |    1 +
 em-format/e-mail-formatter-attachment.c           |    1 +
 em-format/e-mail-formatter-error.c                |    1 +
 em-format/e-mail-formatter-extension.c            |    1 +
 em-format/e-mail-formatter-extension.h            |    4 ++
 em-format/e-mail-formatter-headers.c              |    1 +
 em-format/e-mail-formatter-image.c                |    1 +
 em-format/e-mail-formatter-message-rfc822.c       |    1 +
 em-format/e-mail-formatter-print-headers.c        |    1 +
 em-format/e-mail-formatter-quote-attachment.c     |    1 +
 em-format/e-mail-formatter-quote-headers.c        |    1 +
 em-format/e-mail-formatter-quote-message-rfc822.c |    1 +
 em-format/e-mail-formatter-quote-text-enriched.c  |    1 +
 em-format/e-mail-formatter-quote-text-html.c      |    1 +
 em-format/e-mail-formatter-quote-text-plain.c     |    1 +
 em-format/e-mail-formatter-secure-button.c        |    1 +
 em-format/e-mail-formatter-source.c               |    1 +
 em-format/e-mail-formatter-text-enriched.c        |    1 +
 em-format/e-mail-formatter-text-html.c            |    1 +
 em-format/e-mail-formatter-text-plain.c           |    1 +
 em-format/e-mail-parser-application-mbox.c        |    1 +
 em-format/e-mail-parser-application-smime.c       |    1 +
 em-format/e-mail-parser-attachment-bar.c          |    1 +
 em-format/e-mail-parser-extension.c               |    1 +
 em-format/e-mail-parser-extension.h               |    4 ++
 em-format/e-mail-parser-headers.c                 |    1 +
 em-format/e-mail-parser-image.c                   |    1 +
 em-format/e-mail-parser-inlinepgp-encrypted.c     |    1 +
 em-format/e-mail-parser-inlinepgp-signed.c        |    1 +
 em-format/e-mail-parser-message-deliverystatus.c  |    1 +
 em-format/e-mail-parser-message-external.c        |    1 +
 em-format/e-mail-parser-message-rfc822.c          |    1 +
 em-format/e-mail-parser-message.c                 |    1 +
 em-format/e-mail-parser-multipart-alternative.c   |    1 +
 em-format/e-mail-parser-multipart-appledouble.c   |    1 +
 em-format/e-mail-parser-multipart-digest.c        |    1 +
 em-format/e-mail-parser-multipart-encrypted.c     |    1 +
 em-format/e-mail-parser-multipart-mixed.c         |    1 +
 em-format/e-mail-parser-multipart-related.c       |    1 +
 em-format/e-mail-parser-multipart-signed.c        |    1 +
 em-format/e-mail-parser-secure-button.c           |    1 +
 em-format/e-mail-parser-source.c                  |    1 +
 em-format/e-mail-parser-text-enriched.c           |    1 +
 em-format/e-mail-parser-text-html.c               |    1 +
 em-format/e-mail-parser-text-plain.c              |    1 +
 46 files changed, 94 insertions(+), 4 deletions(-)
---
diff --git a/em-format/e-mail-extension-registry.c b/em-format/e-mail-extension-registry.c
index 7e5f3a9..3d5e7ba 100644
--- a/em-format/e-mail-extension-registry.c
+++ b/em-format/e-mail-extension-registry.c
@@ -59,7 +59,8 @@ destroy_queue (GQueue *queue)
 static void
 mail_extension_registry_add_extension (EMailExtensionRegistry *registry,
                                        const gchar **mime_types,
-                                       GType extension_type)
+                                       GType extension_type,
+                                       GCompareDataFunc compare_func)
 {
 	GObject *extension;
 	gint ii;
@@ -86,7 +87,9 @@ mail_extension_registry_add_extension (EMailExtensionRegistry *registry,
 				queue);
 		}
 
-		g_queue_push_head (queue, g_object_ref (extension));
+		g_queue_insert_sorted (
+			queue, g_object_ref (extension),
+			compare_func, NULL);
 
 		if (camel_debug ("emformat:registry")) {
 			printf (
@@ -217,6 +220,23 @@ e_mail_parser_extension_registry_init (EMailParserExtensionRegistry *registry)
 {
 }
 
+static gint
+mail_parser_extension_registry_compare (gconstpointer extension1,
+                                        gconstpointer extension2,
+                                        gpointer user_data)
+{
+	EMailParserExtensionClass *class1;
+	EMailParserExtensionClass *class2;
+
+	class1 = E_MAIL_PARSER_EXTENSION_GET_CLASS (extension1);
+	class2 = E_MAIL_PARSER_EXTENSION_GET_CLASS (extension2);
+
+	if (class1->priority == class2->priority)
+		return 0;
+
+	return (class1->priority < class2->priority) ? -1 : 1;
+}
+
 void
 e_mail_parser_extension_registry_load (EMailParserExtensionRegistry *registry)
 {
@@ -239,7 +259,8 @@ e_mail_parser_extension_registry_load (EMailParserExtensionRegistry *registry)
 
 		mail_extension_registry_add_extension (
 			E_MAIL_EXTENSION_REGISTRY (registry),
-			class->mime_types, children[ii]);
+			class->mime_types, children[ii],
+			mail_parser_extension_registry_compare);
 
 		g_type_class_unref (class);
 	}
@@ -265,6 +286,23 @@ e_mail_formatter_extension_registry_init (EMailFormatterExtensionRegistry *regis
 {
 }
 
+static gint
+mail_formatter_extension_registry_compare (gconstpointer extension1,
+                                           gconstpointer extension2,
+                                           gpointer user_data)
+{
+	EMailFormatterExtensionClass *class1;
+	EMailFormatterExtensionClass *class2;
+
+	class1 = E_MAIL_FORMATTER_EXTENSION_GET_CLASS (extension1);
+	class2 = E_MAIL_FORMATTER_EXTENSION_GET_CLASS (extension2);
+
+	if (class1->priority == class2->priority)
+		return 0;
+
+	return (class1->priority < class2->priority) ? -1 : 1;
+}
+
 void
 e_mail_formatter_extension_registry_load (EMailFormatterExtensionRegistry *registry,
                                           GType base_extension_type)
@@ -286,7 +324,8 @@ e_mail_formatter_extension_registry_load (EMailFormatterExtensionRegistry *regis
 
 		mail_extension_registry_add_extension (
 			E_MAIL_EXTENSION_REGISTRY (registry),
-			class->mime_types, children[ii]);
+			class->mime_types, children[ii],
+			mail_formatter_extension_registry_compare);
 
 		g_type_class_unref (class);
 	}
diff --git a/em-format/e-mail-formatter-attachment-bar.c b/em-format/e-mail-formatter-attachment-bar.c
index 4591501..f91500e 100644
--- a/em-format/e-mail-formatter-attachment-bar.c
+++ b/em-format/e-mail-formatter-attachment-bar.c
@@ -102,6 +102,7 @@ static void
 e_mail_formatter_attachment_bar_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_attachment_bar_format;
 	class->get_widget = emfe_attachment_bar_get_widget;
 }
diff --git a/em-format/e-mail-formatter-attachment.c b/em-format/e-mail-formatter-attachment.c
index f800ca2..b573aa1 100644
--- a/em-format/e-mail-formatter-attachment.c
+++ b/em-format/e-mail-formatter-attachment.c
@@ -363,6 +363,7 @@ e_mail_formatter_attachment_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("Attachment");
 	class->description =  _("Display as attachment");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_attachment_format;
 	class->get_widget = emfe_attachment_get_widget;
 }
diff --git a/em-format/e-mail-formatter-error.c b/em-format/e-mail-formatter-error.c
index 3adaab9..6decb64 100644
--- a/em-format/e-mail-formatter-error.c
+++ b/em-format/e-mail-formatter-error.c
@@ -107,6 +107,7 @@ static void
 e_mail_formatter_error_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_error_format;
 }
 
diff --git a/em-format/e-mail-formatter-extension.c b/em-format/e-mail-formatter-extension.c
index 9390d77..bbac406 100644
--- a/em-format/e-mail-formatter-extension.c
+++ b/em-format/e-mail-formatter-extension.c
@@ -26,6 +26,7 @@ G_DEFINE_ABSTRACT_TYPE (
 static void
 e_mail_formatter_extension_class_init (EMailFormatterExtensionClass *class)
 {
+	class->priority = G_PRIORITY_DEFAULT;
 }
 
 static void
diff --git a/em-format/e-mail-formatter-extension.h b/em-format/e-mail-formatter-extension.h
index 9c7e4b9..1da4069 100644
--- a/em-format/e-mail-formatter-extension.h
+++ b/em-format/e-mail-formatter-extension.h
@@ -74,6 +74,10 @@ struct _EMailFormatterExtensionClass {
 	 * wildcard (e.g. "text/ *"). */
 	const gchar **mime_types;
 
+	/* This is used to prioritize extensions with identical MIME
+	 * types.  Lower values win.  Defaults to G_PRIORITY_DEFAULT. */
+	gint priority;
+
 	gboolean	(*format)	(EMailFormatterExtension *extension,
 					 EMailFormatter *formatter,
 					 EMailFormatterContext *context,
diff --git a/em-format/e-mail-formatter-headers.c b/em-format/e-mail-formatter-headers.c
index 3161d88..b7862d9 100644
--- a/em-format/e-mail-formatter-headers.c
+++ b/em-format/e-mail-formatter-headers.c
@@ -560,6 +560,7 @@ static void
 e_mail_formatter_headers_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_headers_format;
 }
 
diff --git a/em-format/e-mail-formatter-image.c b/em-format/e-mail-formatter-image.c
index 4cdd844..82c6358 100644
--- a/em-format/e-mail-formatter-image.c
+++ b/em-format/e-mail-formatter-image.c
@@ -143,6 +143,7 @@ e_mail_formatter_image_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("Regular Image");
 	class->description = _("Display part as an image");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_image_format;
 }
 
diff --git a/em-format/e-mail-formatter-message-rfc822.c b/em-format/e-mail-formatter-message-rfc822.c
index 9e88986..f6e1a18 100644
--- a/em-format/e-mail-formatter-message-rfc822.c
+++ b/em-format/e-mail-formatter-message-rfc822.c
@@ -242,6 +242,7 @@ e_mail_formatter_message_rfc822_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("RFC822 message");
 	class->description = _("Format part as an RFC822 message");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_message_rfc822_format;
 }
 
diff --git a/em-format/e-mail-formatter-print-headers.c b/em-format/e-mail-formatter-print-headers.c
index c3f683f..fb19559 100644
--- a/em-format/e-mail-formatter-print-headers.c
+++ b/em-format/e-mail-formatter-print-headers.c
@@ -209,6 +209,7 @@ static void
 e_mail_formatter_print_headers_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfpe_headers_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-attachment.c b/em-format/e-mail-formatter-quote-attachment.c
index 628ef97..325f70f 100644
--- a/em-format/e-mail-formatter-quote-attachment.c
+++ b/em-format/e-mail-formatter-quote-attachment.c
@@ -112,6 +112,7 @@ static void
 e_mail_formatter_quote_attachment_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfqe_attachment_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-headers.c b/em-format/e-mail-formatter-quote-headers.c
index 8fed82d..20e97fd 100644
--- a/em-format/e-mail-formatter-quote-headers.c
+++ b/em-format/e-mail-formatter-quote-headers.c
@@ -235,6 +235,7 @@ static void
 e_mail_formatter_quote_headers_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emqfe_headers_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-message-rfc822.c b/em-format/e-mail-formatter-quote-message-rfc822.c
index 42b3ba5..675d305 100644
--- a/em-format/e-mail-formatter-quote-message-rfc822.c
+++ b/em-format/e-mail-formatter-quote-message-rfc822.c
@@ -138,6 +138,7 @@ static void
 e_mail_formatter_quote_message_rfc822_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfqe_message_rfc822_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-text-enriched.c b/em-format/e-mail-formatter-quote-text-enriched.c
index 031cc66..b279d96 100644
--- a/em-format/e-mail-formatter-quote-text-enriched.c
+++ b/em-format/e-mail-formatter-quote-text-enriched.c
@@ -88,6 +88,7 @@ e_mail_formatter_quote_text_enriched_class_init (EMailFormatterExtensionClass *c
 	class->display_name = _("Richtext");
 	class->description = _("Display part as enriched text");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emqfe_text_enriched_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-text-html.c b/em-format/e-mail-formatter-quote-text-html.c
index 71c7d63..0febedb 100644
--- a/em-format/e-mail-formatter-quote-text-html.c
+++ b/em-format/e-mail-formatter-quote-text-html.c
@@ -90,6 +90,7 @@ e_mail_formatter_quote_text_html_class_init (EMailFormatterExtensionClass *class
 	class->display_name = _("HTML");
 	class->description = _("Format part as HTML");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emqfe_text_html_format;
 }
 
diff --git a/em-format/e-mail-formatter-quote-text-plain.c b/em-format/e-mail-formatter-quote-text-plain.c
index 71f1762..95d7b54 100644
--- a/em-format/e-mail-formatter-quote-text-plain.c
+++ b/em-format/e-mail-formatter-quote-text-plain.c
@@ -110,6 +110,7 @@ e_mail_formatter_quote_text_plain_class_init (EMailFormatterExtensionClass *clas
 	class->display_name = _("Plain Text");
 	class->description = _("Format part as plain text");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emqfe_text_plain_format;
 }
 
diff --git a/em-format/e-mail-formatter-secure-button.c b/em-format/e-mail-formatter-secure-button.c
index 8f66b2e..571b90d 100644
--- a/em-format/e-mail-formatter-secure-button.c
+++ b/em-format/e-mail-formatter-secure-button.c
@@ -464,6 +464,7 @@ static void
 e_mail_formatter_secure_button_class_init (EMailFormatterExtensionClass *class)
 {
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_secure_button_format;
 	class->get_widget = emfe_secure_button_get_widget;
 }
diff --git a/em-format/e-mail-formatter-source.c b/em-format/e-mail-formatter-source.c
index e4ee288..fed444e 100644
--- a/em-format/e-mail-formatter-source.c
+++ b/em-format/e-mail-formatter-source.c
@@ -126,6 +126,7 @@ e_mail_formatter_source_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("Source");
 	class->description = _("Display source of a MIME part");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_source_format;
 }
 
diff --git a/em-format/e-mail-formatter-text-enriched.c b/em-format/e-mail-formatter-text-enriched.c
index 1ea46e8..988579e 100644
--- a/em-format/e-mail-formatter-text-enriched.c
+++ b/em-format/e-mail-formatter-text-enriched.c
@@ -102,6 +102,7 @@ e_mail_formatter_text_enriched_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("Richtext");
 	class->description = _("Display part as enriched text");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_text_enriched_format;
 }
 
diff --git a/em-format/e-mail-formatter-text-html.c b/em-format/e-mail-formatter-text-html.c
index a70ec2b..8e9a6a6 100644
--- a/em-format/e-mail-formatter-text-html.c
+++ b/em-format/e-mail-formatter-text-html.c
@@ -353,6 +353,7 @@ e_mail_formatter_text_html_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("HTML");
 	class->description = _("Format part as HTML");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_text_html_format;
 }
 
diff --git a/em-format/e-mail-formatter-text-plain.c b/em-format/e-mail-formatter-text-plain.c
index 278353b..78b1919 100644
--- a/em-format/e-mail-formatter-text-plain.c
+++ b/em-format/e-mail-formatter-text-plain.c
@@ -186,6 +186,7 @@ e_mail_formatter_text_plain_class_init (EMailFormatterExtensionClass *class)
 	class->display_name = _("Plain Text");
 	class->description = _("Format part as plain text");
 	class->mime_types = formatter_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->format = emfe_text_plain_format;
 }
 
diff --git a/em-format/e-mail-parser-application-mbox.c b/em-format/e-mail-parser-application-mbox.c
index b0fde83..73c86a7 100644
--- a/em-format/e-mail-parser-application-mbox.c
+++ b/em-format/e-mail-parser-application-mbox.c
@@ -160,6 +160,7 @@ static void
 e_mail_parser_application_mbox_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->flags =
 		E_MAIL_PARSER_EXTENSION_INLINE |
 		E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE;
diff --git a/em-format/e-mail-parser-application-smime.c b/em-format/e-mail-parser-application-smime.c
index 13c3d73..e84e1e9 100644
--- a/em-format/e-mail-parser-application-smime.c
+++ b/em-format/e-mail-parser-application-smime.c
@@ -150,6 +150,7 @@ static void
 e_mail_parser_application_smime_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->flags = E_MAIL_PARSER_EXTENSION_INLINE;
 	class->parse = empe_app_smime_parse;
 }
diff --git a/em-format/e-mail-parser-attachment-bar.c b/em-format/e-mail-parser-attachment-bar.c
index 44fbb9c..5e36b83 100644
--- a/em-format/e-mail-parser-attachment-bar.c
+++ b/em-format/e-mail-parser-attachment-bar.c
@@ -82,6 +82,7 @@ static void
 e_mail_parser_attachment_bar_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_attachment_bar_parse;
 }
 
diff --git a/em-format/e-mail-parser-extension.c b/em-format/e-mail-parser-extension.c
index 28b3be3..69992a6 100644
--- a/em-format/e-mail-parser-extension.c
+++ b/em-format/e-mail-parser-extension.c
@@ -26,6 +26,7 @@ G_DEFINE_ABSTRACT_TYPE (
 static void
 e_mail_parser_extension_class_init (EMailParserExtensionClass *class)
 {
+	class->priority = G_PRIORITY_DEFAULT;
 }
 
 static void
diff --git a/em-format/e-mail-parser-extension.h b/em-format/e-mail-parser-extension.h
index 2b486a6..c011df6 100644
--- a/em-format/e-mail-parser-extension.h
+++ b/em-format/e-mail-parser-extension.h
@@ -81,6 +81,10 @@ struct _EMailParserExtensionClass {
 	 * wildcard (e.g. "text/ *"). */
 	const gchar **mime_types;
 
+	/* This is used to prioritize extensions with identical MIME
+	 * types.  Lower values win.  Defaults to G_PRIORITY_DEFAULT. */
+	gint priority;
+
 	/* See the flag descriptions above. */
 	EMailParserExtensionFlags flags;
 
diff --git a/em-format/e-mail-parser-headers.c b/em-format/e-mail-parser-headers.c
index f290094..49b7509 100644
--- a/em-format/e-mail-parser-headers.c
+++ b/em-format/e-mail-parser-headers.c
@@ -101,6 +101,7 @@ static void
 e_mail_parser_headers_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_headers_parse;
 }
 
diff --git a/em-format/e-mail-parser-image.c b/em-format/e-mail-parser-image.c
index 741daa7..4fc57de 100644
--- a/em-format/e-mail-parser-image.c
+++ b/em-format/e-mail-parser-image.c
@@ -113,6 +113,7 @@ static void
 e_mail_parser_image_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_image_parse;
 }
 
diff --git a/em-format/e-mail-parser-inlinepgp-encrypted.c b/em-format/e-mail-parser-inlinepgp-encrypted.c
index 624452c..b73b201 100644
--- a/em-format/e-mail-parser-inlinepgp-encrypted.c
+++ b/em-format/e-mail-parser-inlinepgp-encrypted.c
@@ -168,6 +168,7 @@ static void
 e_mail_parser_inline_pgp_encrypted_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_inlinepgp_encrypted_parse;
 }
 
diff --git a/em-format/e-mail-parser-inlinepgp-signed.c b/em-format/e-mail-parser-inlinepgp-signed.c
index fb65e5c..8f5f38c 100644
--- a/em-format/e-mail-parser-inlinepgp-signed.c
+++ b/em-format/e-mail-parser-inlinepgp-signed.c
@@ -191,6 +191,7 @@ static void
 e_mail_parser_inline_pgp_signed_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_inlinepgp_signed_parse;
 }
 
diff --git a/em-format/e-mail-parser-message-deliverystatus.c b/em-format/e-mail-parser-message-deliverystatus.c
index d02bbf9..8e7fc80 100644
--- a/em-format/e-mail-parser-message-deliverystatus.c
+++ b/em-format/e-mail-parser-message-deliverystatus.c
@@ -77,6 +77,7 @@ static void
 e_mail_parser_message_delivery_status_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_msg_deliverystatus_parse;
 }
 
diff --git a/em-format/e-mail-parser-message-external.c b/em-format/e-mail-parser-message-external.c
index d24bb65..32ba051 100644
--- a/em-format/e-mail-parser-message-external.c
+++ b/em-format/e-mail-parser-message-external.c
@@ -169,6 +169,7 @@ static void
 e_mail_parser_message_external_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_msg_external_parse;
 }
 
diff --git a/em-format/e-mail-parser-message-rfc822.c b/em-format/e-mail-parser-message-rfc822.c
index ca9dd67..31bca87 100644
--- a/em-format/e-mail-parser-message-rfc822.c
+++ b/em-format/e-mail-parser-message-rfc822.c
@@ -123,6 +123,7 @@ static void
 e_mail_parser_message_rfc822_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->flags =
 		E_MAIL_PARSER_EXTENSION_INLINE |
 		E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE;
diff --git a/em-format/e-mail-parser-message.c b/em-format/e-mail-parser-message.c
index 9cd0a2d..ad91e42 100644
--- a/em-format/e-mail-parser-message.c
+++ b/em-format/e-mail-parser-message.c
@@ -98,6 +98,7 @@ static void
 e_mail_parser_message_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_message_parse;
 }
 
diff --git a/em-format/e-mail-parser-multipart-alternative.c b/em-format/e-mail-parser-multipart-alternative.c
index cc1c872..1ecb778 100644
--- a/em-format/e-mail-parser-multipart-alternative.c
+++ b/em-format/e-mail-parser-multipart-alternative.c
@@ -148,6 +148,7 @@ static void
 e_mail_parser_multipart_alternative_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_mp_alternative_parse;
 }
 
diff --git a/em-format/e-mail-parser-multipart-appledouble.c b/em-format/e-mail-parser-multipart-appledouble.c
index a866363..bc79348 100644
--- a/em-format/e-mail-parser-multipart-appledouble.c
+++ b/em-format/e-mail-parser-multipart-appledouble.c
@@ -85,6 +85,7 @@ static void
 e_mail_parser_multipart_apple_double_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_mp_appledouble_parse;
 }
 
diff --git a/em-format/e-mail-parser-multipart-digest.c b/em-format/e-mail-parser-multipart-digest.c
index 64d4882..5d33103 100644
--- a/em-format/e-mail-parser-multipart-digest.c
+++ b/em-format/e-mail-parser-multipart-digest.c
@@ -119,6 +119,7 @@ static void
 e_mail_parser_multipart_digest_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->flags = E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE;
 	class->parse = empe_mp_digest_parse;
 }
diff --git a/em-format/e-mail-parser-multipart-encrypted.c b/em-format/e-mail-parser-multipart-encrypted.c
index c815ab5..85bcb9f 100644
--- a/em-format/e-mail-parser-multipart-encrypted.c
+++ b/em-format/e-mail-parser-multipart-encrypted.c
@@ -173,6 +173,7 @@ static void
 e_mail_parser_multipart_encrypted_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_mp_encrypted_parse;
 }
 
diff --git a/em-format/e-mail-parser-multipart-mixed.c b/em-format/e-mail-parser-multipart-mixed.c
index 9e876ee..1fdfb3c 100644
--- a/em-format/e-mail-parser-multipart-mixed.c
+++ b/em-format/e-mail-parser-multipart-mixed.c
@@ -117,6 +117,7 @@ static void
 e_mail_parser_multipart_mixed_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->flags = E_MAIL_PARSER_EXTENSION_COMPOUND_TYPE;
 	class->parse = empe_mp_mixed_parse;
 }
diff --git a/em-format/e-mail-parser-multipart-related.c b/em-format/e-mail-parser-multipart-related.c
index a1cbbf7..96cca60 100644
--- a/em-format/e-mail-parser-multipart-related.c
+++ b/em-format/e-mail-parser-multipart-related.c
@@ -142,6 +142,7 @@ static void
 e_mail_parser_multipart_related_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_mp_related_parse;
 }
 
diff --git a/em-format/e-mail-parser-multipart-signed.c b/em-format/e-mail-parser-multipart-signed.c
index 514d40f..440d791 100644
--- a/em-format/e-mail-parser-multipart-signed.c
+++ b/em-format/e-mail-parser-multipart-signed.c
@@ -207,6 +207,7 @@ static void
 e_mail_parser_multipart_signed_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_mp_signed_parse;
 }
 
diff --git a/em-format/e-mail-parser-secure-button.c b/em-format/e-mail-parser-secure-button.c
index 3836859..865bcec 100644
--- a/em-format/e-mail-parser-secure-button.c
+++ b/em-format/e-mail-parser-secure-button.c
@@ -67,6 +67,7 @@ static void
 e_mail_parser_secure_button_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_secure_button_parse;
 }
 
diff --git a/em-format/e-mail-parser-source.c b/em-format/e-mail-parser-source.c
index ff8355d..b13d34b 100644
--- a/em-format/e-mail-parser-source.c
+++ b/em-format/e-mail-parser-source.c
@@ -68,6 +68,7 @@ static void
 e_mail_parser_source_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_source_parse;
 }
 
diff --git a/em-format/e-mail-parser-text-enriched.c b/em-format/e-mail-parser-text-enriched.c
index 024d160..f2b26c2 100644
--- a/em-format/e-mail-parser-text-enriched.c
+++ b/em-format/e-mail-parser-text-enriched.c
@@ -88,6 +88,7 @@ static void
 e_mail_parser_text_enriched_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_text_enriched_parse;
 }
 
diff --git a/em-format/e-mail-parser-text-html.c b/em-format/e-mail-parser-text-html.c
index ccfc5d6..ae97858 100644
--- a/em-format/e-mail-parser-text-html.c
+++ b/em-format/e-mail-parser-text-html.c
@@ -98,6 +98,7 @@ static void
 e_mail_parser_text_html_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_text_html_parse;
 }
 
diff --git a/em-format/e-mail-parser-text-plain.c b/em-format/e-mail-parser-text-plain.c
index f0b34e4..b6cd0ec 100644
--- a/em-format/e-mail-parser-text-plain.c
+++ b/em-format/e-mail-parser-text-plain.c
@@ -226,6 +226,7 @@ static void
 e_mail_parser_text_plain_class_init (EMailParserExtensionClass *class)
 {
 	class->mime_types = parser_mime_types;
+	class->priority = G_PRIORITY_LOW;
 	class->parse = empe_text_plain_parse;
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]