Convert EMailParserExtension to an abstract class.
With the previous changes, all parser extensions derive from GObjectClass and implement the EMailParserExtensionInterface. Simplify things further by making EMailParserExtension an abstract base class so parser extensions are now just direct subclasses and need not bother with implementing GObject interfaces.
This commit is contained in:
@ -38,24 +38,19 @@
|
||||
|
||||
#define d(x)
|
||||
|
||||
typedef GObject EMailParserAudioInline;
|
||||
typedef GObjectClass EMailParserAudioInlineClass;
|
||||
typedef EMailParserExtension EMailParserAudioInline;
|
||||
typedef EMailParserExtensionClass EMailParserAudioInlineClass;
|
||||
|
||||
typedef EExtension EMailParserAudioInlineLoader;
|
||||
typedef EExtensionClass EMailParserAudioInlineLoaderClass;
|
||||
|
||||
GType e_mail_parser_audio_inline_get_type (void);
|
||||
GType e_mail_parser_audio_inline_loader_get_type (void);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserAudioInline,
|
||||
e_mail_parser_audio_inline,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserAudioInlineLoader,
|
||||
@ -157,26 +152,21 @@ empe_audio_inline_get_flags (EMailParserExtension *extension)
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
e_mail_parser_audio_inline_class_init (EMailParserExtensionClass *class)
|
||||
{
|
||||
iface->mime_types = parser_mime_types;
|
||||
iface->parse = empe_audio_inline_parse;
|
||||
iface->get_flags = empe_audio_inline_get_flags;
|
||||
class->mime_types = parser_mime_types;
|
||||
class->parse = empe_audio_inline_parse;
|
||||
class->get_flags = empe_audio_inline_get_flags;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_audio_inline_class_init (EMailParserAudioInlineClass *class)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_audio_inline_class_finalize (EMailParserAudioInlineClass *class)
|
||||
e_mail_parser_audio_inline_class_finalize (EMailParserExtensionClass *class)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_audio_inline_init (EMailParserAudioInline *self)
|
||||
e_mail_parser_audio_inline_init (EMailParserExtension *extension)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -44,24 +44,19 @@
|
||||
|
||||
#define d(x)
|
||||
|
||||
typedef GObject EMailParserItip;
|
||||
typedef GObjectClass EMailParserItipClass;
|
||||
typedef EMailParserExtension EMailParserItip;
|
||||
typedef EMailParserExtensionClass EMailParserItipClass;
|
||||
|
||||
typedef EExtension EMailParserItipLoader;
|
||||
typedef EExtensionClass EMailParserItipLoaderClass;
|
||||
|
||||
GType e_mail_parser_itip_get_type (void);
|
||||
GType e_mail_parser_itip_loader_get_type (void);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserItip,
|
||||
e_mail_parser_itip,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserItipLoader,
|
||||
@ -260,26 +255,20 @@ empe_itip_get_flags (EMailParserExtension *extension)
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_itip_class_init (EMailParserItipClass *class)
|
||||
e_mail_parser_itip_class_init (EMailParserExtensionClass *class)
|
||||
{
|
||||
class->mime_types = parser_mime_types;
|
||||
class->parse = empe_itip_parse;
|
||||
class->get_flags = empe_itip_get_flags;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_itip_class_finalize (EMailParserExtensionClass *class)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_itip_class_finalize (EMailParserItipClass *class)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
{
|
||||
iface->mime_types = parser_mime_types;
|
||||
iface->parse = empe_itip_parse;
|
||||
iface->get_flags = empe_itip_get_flags;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_itip_init (EMailParserItip *self)
|
||||
e_mail_parser_itip_init (EMailParserExtension *class)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ typedef EExtension EMailParserPreferPlainLoader;
|
||||
typedef EExtensionClass EMailParserPreferPlainLoaderClass;
|
||||
|
||||
struct _EMailParserPreferPlain {
|
||||
GObject parent;
|
||||
EMailParserExtension parent;
|
||||
|
||||
GSettings *settings;
|
||||
gint mode;
|
||||
@ -47,12 +47,11 @@ struct _EMailParserPreferPlain {
|
||||
};
|
||||
|
||||
struct _EMailParserPreferPlainClass {
|
||||
GObjectClass parent_class;
|
||||
EMailParserExtensionClass parent_class;
|
||||
};
|
||||
|
||||
GType e_mail_parser_prefer_plain_get_type (void);
|
||||
GType e_mail_parser_prefer_plain_loader_get_type (void);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
enum {
|
||||
PREFER_HTML,
|
||||
@ -60,14 +59,10 @@ enum {
|
||||
ONLY_PLAIN
|
||||
};
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserPreferPlain,
|
||||
e_mail_parser_prefer_plain,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserPreferPlainLoader,
|
||||
@ -331,13 +326,6 @@ empe_prefer_plain_parse (EMailParserExtension *extension,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
{
|
||||
iface->mime_types = parser_mime_types;
|
||||
iface->parse = empe_prefer_plain_parse;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_prefer_plain_get_property (GObject *object,
|
||||
guint property_id,
|
||||
@ -400,12 +388,17 @@ static void
|
||||
e_mail_parser_prefer_plain_class_init (EMailParserPreferPlainClass *class)
|
||||
{
|
||||
GObjectClass *object_class;
|
||||
EMailParserExtensionClass *extension_class;
|
||||
|
||||
object_class = G_OBJECT_CLASS (class);
|
||||
object_class->get_property = e_mail_parser_prefer_plain_get_property;
|
||||
object_class->set_property = e_mail_parser_prefer_plain_set_property;
|
||||
object_class->dispose = e_mail_parser_prefer_plain_dispose;
|
||||
|
||||
extension_class = E_MAIL_PARSER_EXTENSION_CLASS (class);
|
||||
extension_class->mime_types = parser_mime_types;
|
||||
extension_class->parse = empe_prefer_plain_parse;
|
||||
|
||||
g_object_class_install_property (
|
||||
object_class,
|
||||
PROP_MODE,
|
||||
|
||||
@ -34,24 +34,19 @@
|
||||
|
||||
#define d(x)
|
||||
|
||||
typedef GObject EMailParserTextHighlight;
|
||||
typedef GObjectClass EMailParserTextHighlightClass;
|
||||
typedef EMailParserExtension EMailParserTextHighlight;
|
||||
typedef EMailParserExtensionClass EMailParserTextHighlightClass;
|
||||
|
||||
typedef EExtension EMailParserTextHighlightLoader;
|
||||
typedef EExtensionClass EMailParserTextHighlightLoaderClass;
|
||||
|
||||
GType e_mail_parser_text_highlight_get_type (void);
|
||||
GType e_mail_parser_text_highlight_loader_get_type (void);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserTextHighlight,
|
||||
e_mail_parser_text_highlight,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserTextHighlightLoader,
|
||||
@ -99,24 +94,19 @@ empe_text_highlight_parse (EMailParserExtension *extension,
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
{
|
||||
iface->mime_types = get_mime_types ();
|
||||
iface->parse = empe_text_highlight_parse;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_text_highlight_class_init (EMailParserTextHighlightClass *class)
|
||||
e_mail_parser_text_highlight_class_init (EMailParserExtensionClass *class)
|
||||
{
|
||||
class->mime_types = get_mime_types ();
|
||||
class->parse = empe_text_highlight_parse;
|
||||
}
|
||||
|
||||
void
|
||||
e_mail_parser_text_highlight_class_finalize (EMailParserTextHighlightClass *class)
|
||||
e_mail_parser_text_highlight_class_finalize (EMailParserExtensionClass *class)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_text_highlight_init (EMailParserTextHighlight *parser)
|
||||
e_mail_parser_text_highlight_init (EMailParserExtension *extension)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
#define d(x)
|
||||
|
||||
typedef struct _EMailParserTnefAttachment {
|
||||
GObject parent;
|
||||
EMailParserExtension parent;
|
||||
|
||||
GSettings *settings;
|
||||
gint mode;
|
||||
@ -58,7 +58,7 @@ typedef struct _EMailParserTnefAttachment {
|
||||
} EMailParserTnefAttachment;
|
||||
|
||||
typedef struct _EMailParserTnefAttachmentClass {
|
||||
GObjectClass parent_class;
|
||||
EMailParserExtensionClass parent_class;
|
||||
} EMailParserTnefAttachmentClass;
|
||||
|
||||
typedef EExtension EMailParserTnefAttachmentLoader;
|
||||
@ -66,16 +66,11 @@ typedef EExtensionClass EMailParserTnefAttachmentLoaderClass;
|
||||
|
||||
GType e_mail_parser_tnef_attachment_get_type (void);
|
||||
GType e_mail_parser_tnef_attachment_loader_get_type (void);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserTnefAttachment,
|
||||
e_mail_parser_tnef_attachment,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserTnefAttachmentLoader,
|
||||
@ -266,16 +261,14 @@ empe_tnef_attachment_parse (EMailParserExtension *extension,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
{
|
||||
iface->mime_types = parser_mime_types;
|
||||
iface->parse = empe_tnef_attachment_parse;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_tnef_attachment_class_init (EMailParserTnefAttachmentClass *class)
|
||||
{
|
||||
EMailParserExtensionClass *extension_class;
|
||||
|
||||
extension_class = E_MAIL_PARSER_EXTENSION_CLASS (class);
|
||||
extension_class->mime_types = parser_mime_types;
|
||||
extension_class->parse = empe_tnef_attachment_parse;
|
||||
}
|
||||
|
||||
void
|
||||
@ -284,7 +277,7 @@ e_mail_parser_tnef_attachment_class_finalize (EMailParserTnefAttachmentClass *cl
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_tnef_attachment_init (EMailParserTnefAttachment *parser)
|
||||
e_mail_parser_tnef_attachment_init (EMailParserTnefAttachment *extension)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -48,24 +48,19 @@
|
||||
|
||||
#define d(x)
|
||||
|
||||
typedef GObject EMailParserVCardInline;
|
||||
typedef GObjectClass EMailParserVCardInlineClass;
|
||||
typedef EMailParserExtension EMailParserVCardInline;
|
||||
typedef EMailParserExtensionClass EMailParserVCardInlineClass;
|
||||
|
||||
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);
|
||||
static void e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface);
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED (
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserVCardInline,
|
||||
e_mail_parser_vcard_inline,
|
||||
G_TYPE_OBJECT,
|
||||
0,
|
||||
G_IMPLEMENT_INTERFACE_DYNAMIC (
|
||||
E_TYPE_MAIL_PARSER_EXTENSION,
|
||||
e_mail_parser_parser_extension_interface_init));
|
||||
E_TYPE_MAIL_PARSER_EXTENSION)
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (
|
||||
EMailParserVCardInlineLoader,
|
||||
@ -381,26 +376,20 @@ empe_vcard_inline_get_flags (EMailParserExtension *extension)
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_parser_extension_interface_init (EMailParserExtensionInterface *iface)
|
||||
e_mail_parser_vcard_inline_class_init (EMailParserExtensionClass *class)
|
||||
{
|
||||
iface->mime_types = parser_mime_types;
|
||||
iface->parse = empe_vcard_inline_parse;
|
||||
iface->get_flags = empe_vcard_inline_get_flags;
|
||||
class->mime_types = parser_mime_types;
|
||||
class->parse = empe_vcard_inline_parse;
|
||||
class->get_flags = empe_vcard_inline_get_flags;
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_vcard_inline_class_init (EMailParserVCardInlineClass *class)
|
||||
e_mail_parser_vcard_inline_class_finalize (EMailParserExtensionClass *class)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_vcard_inline_class_finalize (EMailParserVCardInlineClass *class)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
e_mail_parser_vcard_inline_init (EMailParserVCardInline *self)
|
||||
e_mail_parser_vcard_inline_init (EMailParserExtension *extension)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user