diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2012-12-08 05:30:18 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-12-08 06:40:28 +0800 |
commit | bf30024dd7973006bf99d0ae509a7f0022368a41 (patch) | |
tree | d6ce797885082ba6ee3878db5054bdbaa6d691f4 /modules/vcard-inline | |
parent | 7c656866a2a3cf9110a8db5d57a156638c8c3fe0 (diff) | |
download | gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar.gz gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar.bz2 gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar.lz gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar.xz gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.tar.zst gsoc2013-evolution-bf30024dd7973006bf99d0ae509a7f0022368a41.zip |
Teach EMailExtensionRegistry to find extensions.
Now we have the following extension points in the GType hierarchy:
E_TYPE_MAIL_FORMATTER_EXTENSION
E_TYPE_MAIL_FORMATTER_PRINT_EXTENSION
E_TYPE_MAIL_FORMATTER_QUOTE_EXTENSION
E_TYPE_MAIL_PARSER_EXTENSION
A registry just needs to be given one of these extension points, and it
can use g_type_children() to find and load all registered extensions.
This eliminates e-mail-format-extensions.[ch] as well as the dynamic
loaders I added a few commits back. Dynamically loaded extensions are
now easier to register, at the cost of internal extensions being a tad
more cumbersome to register. Fair tradeoff, imo.
This also makes e_mail_extension_registry_add_extension() a private
function used only by e_mail_formatter_extension_registry_load() and
e_mail_parser_extension_registry_load().
Diffstat (limited to 'modules/vcard-inline')
-rw-r--r-- | modules/vcard-inline/e-mail-formatter-vcard-inline.c | 41 | ||||
-rw-r--r-- | modules/vcard-inline/e-mail-parser-vcard-inline.c | 41 |
2 files changed, 0 insertions, 82 deletions
diff --git a/modules/vcard-inline/e-mail-formatter-vcard-inline.c b/modules/vcard-inline/e-mail-formatter-vcard-inline.c index 873d9c7343..f7dc88e5b0 100644 --- a/modules/vcard-inline/e-mail-formatter-vcard-inline.c +++ b/modules/vcard-inline/e-mail-formatter-vcard-inline.c @@ -43,18 +43,12 @@ typedef EExtension EMailFormatterVCardInlineLoader; typedef EExtensionClass EMailFormatterVCardInlineLoaderClass; GType e_mail_formatter_vcard_inline_get_type (void); -GType e_mail_formatter_vcard_inline_loader_get_type (void); G_DEFINE_DYNAMIC_TYPE ( EMailFormatterVCardInline, e_mail_formatter_vcard_inline, E_TYPE_MAIL_FORMATTER_EXTENSION) -G_DEFINE_DYNAMIC_TYPE ( - EMailFormatterVCardInlineLoader, - e_mail_formatter_vcard_inline_loader, - E_TYPE_EXTENSION) - static const gchar *formatter_mime_types[] = { "text/vcard", "text/x-vcard", @@ -213,44 +207,9 @@ e_mail_formatter_vcard_inline_init (EMailFormatterExtension *extension) { } -static void -mail_formatter_vcard_inline_loader_constructed (GObject *object) -{ - EExtensible *extensible; - - extensible = e_extension_get_extensible (E_EXTENSION (object)); - - e_mail_extension_registry_add_extension ( - E_MAIL_EXTENSION_REGISTRY (extensible), - formatter_mime_types, - e_mail_formatter_vcard_inline_get_type ()); -} - -static void -e_mail_formatter_vcard_inline_loader_class_init (EExtensionClass *class) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (class); - object_class->constructed = mail_formatter_vcard_inline_loader_constructed; - - class->extensible_type = E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY; -} - -static void -e_mail_formatter_vcard_inline_loader_class_finalize (EExtensionClass *class) -{ -} - -static void -e_mail_formatter_vcard_inline_loader_init (EExtension *extension) -{ -} - void e_mail_formatter_vcard_inline_type_register (GTypeModule *type_module) { e_mail_formatter_vcard_inline_register_type (type_module); - e_mail_formatter_vcard_inline_loader_register_type (type_module); } diff --git a/modules/vcard-inline/e-mail-parser-vcard-inline.c b/modules/vcard-inline/e-mail-parser-vcard-inline.c index 67f357440b..bd4050287a 100644 --- a/modules/vcard-inline/e-mail-parser-vcard-inline.c +++ b/modules/vcard-inline/e-mail-parser-vcard-inline.c @@ -55,18 +55,12 @@ typedef EExtension EMailParserVCardInlineLoader; typedef EExtensionClass EMailParserVCardInlineLoaderClass; GType e_mail_parser_vcard_inline_get_type (void); -GType e_mail_parser_vcard_inline_loader_get_type (void); G_DEFINE_DYNAMIC_TYPE ( EMailParserVCardInline, e_mail_parser_vcard_inline, E_TYPE_MAIL_PARSER_EXTENSION) -G_DEFINE_DYNAMIC_TYPE ( - EMailParserVCardInlineLoader, - e_mail_parser_vcard_inline_loader, - E_TYPE_EXTENSION) - static const gchar *parser_mime_types[] = { "text/vcard", "text/x-vcard", @@ -387,44 +381,9 @@ e_mail_parser_vcard_inline_init (EMailParserExtension *extension) { } -static void -mail_parser_vcard_inline_loader_constructed (GObject *object) -{ - EExtensible *extensible; - - extensible = e_extension_get_extensible (E_EXTENSION (object)); - - e_mail_extension_registry_add_extension ( - E_MAIL_EXTENSION_REGISTRY (extensible), - parser_mime_types, - e_mail_parser_vcard_inline_get_type ()); -} - -static void -e_mail_parser_vcard_inline_loader_class_init (EExtensionClass *class) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (class); - object_class->constructed = mail_parser_vcard_inline_loader_constructed; - - class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY; -} - -static void -e_mail_parser_vcard_inline_loader_class_finalize (EExtensionClass *class) -{ -} - -static void -e_mail_parser_vcard_inline_loader_init (EExtension *extension) -{ -} - void e_mail_parser_vcard_inline_type_register (GTypeModule *type_module) { e_mail_parser_vcard_inline_register_type (type_module); - e_mail_parser_vcard_inline_loader_register_type (type_module); } |