aboutsummaryrefslogtreecommitdiffstats
path: root/modules/vcard-inline
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-12-08 05:30:18 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-12-08 06:40:28 +0800
commitbf30024dd7973006bf99d0ae509a7f0022368a41 (patch)
treed6ce797885082ba6ee3878db5054bdbaa6d691f4 /modules/vcard-inline
parent7c656866a2a3cf9110a8db5d57a156638c8c3fe0 (diff)
downloadgsoc2013-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.c41
-rw-r--r--modules/vcard-inline/e-mail-parser-vcard-inline.c41
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);
}