diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-07-03 05:17:40 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-07-06 04:40:50 +0800 |
commit | bb5f5ad90beabd459e27d7aaac44d92c9b106c00 (patch) | |
tree | f1475231191b25673c2539c6955703cf9e7b7982 | |
parent | 880cf290462273744bd3da929d9f10964e618e2a (diff) | |
download | gsoc2013-evolution-bb5f5ad90beabd459e27d7aaac44d92c9b106c00.tar.gz gsoc2013-evolution-bb5f5ad90beabd459e27d7aaac44d92c9b106c00.tar.zst gsoc2013-evolution-bb5f5ad90beabd459e27d7aaac44d92c9b106c00.zip |
GalViewFactoryClass: Remove the get_type_code() method.
GalViewFactory can now use its "gal_view_type" class member to peek at
the appropriate GalViewClass and return its static "type_code" string.
-rw-r--r-- | addressbook/gui/widgets/gal-view-factory-minicard.c | 7 | ||||
-rw-r--r-- | calendar/gui/calendar-view-factory.c | 28 | ||||
-rw-r--r-- | e-util/gal-view-factory-etable.c | 7 | ||||
-rw-r--r-- | e-util/gal-view-factory.c | 10 | ||||
-rw-r--r-- | e-util/gal-view-factory.h | 1 |
5 files changed, 8 insertions, 45 deletions
diff --git a/addressbook/gui/widgets/gal-view-factory-minicard.c b/addressbook/gui/widgets/gal-view-factory-minicard.c index f9c78f9a31..915bc039d7 100644 --- a/addressbook/gui/widgets/gal-view-factory-minicard.c +++ b/addressbook/gui/widgets/gal-view-factory-minicard.c @@ -32,12 +32,6 @@ G_DEFINE_TYPE ( GalViewFactoryMinicard, gal_view_factory_minicard, GAL_TYPE_VIEW_FACTORY) -static const gchar * -gal_view_factory_minicard_get_type_code (GalViewFactory *factory) -{ - return "minicard"; -} - static GalView * gal_view_factory_minicard_new_view (GalViewFactory *factory, const gchar *name) @@ -52,7 +46,6 @@ gal_view_factory_minicard_class_init (GalViewFactoryMinicardClass *minicard_clas view_factory_class = GAL_VIEW_FACTORY_CLASS (minicard_class); view_factory_class->gal_view_type = GAL_TYPE_VIEW_MINICARD; - view_factory_class->get_type_code = gal_view_factory_minicard_get_type_code; view_factory_class->new_view = gal_view_factory_minicard_new_view; } diff --git a/calendar/gui/calendar-view-factory.c b/calendar/gui/calendar-view-factory.c index ca4a117efb..706f5ead68 100644 --- a/calendar/gui/calendar-view-factory.c +++ b/calendar/gui/calendar-view-factory.c @@ -43,12 +43,6 @@ G_DEFINE_TYPE ( gal_view_factory_calendar_month, GAL_TYPE_VIEW_FACTORY) -static const gchar * -gal_view_factory_calendar_day_get_type_code (GalViewFactory *factory) -{ - return "day_view"; -} - static GalView * gal_view_factory_calendar_day_new_view (GalViewFactory *factory, const gchar *title) @@ -62,7 +56,6 @@ static void gal_view_factory_calendar_day_class_init (GalViewFactoryClass *class) { class->gal_view_type = GAL_TYPE_VIEW_CALENDAR_DAY; - class->get_type_code = gal_view_factory_calendar_day_get_type_code; class->new_view = gal_view_factory_calendar_day_new_view; } @@ -71,12 +64,6 @@ gal_view_factory_calendar_day_init (GalViewFactory *factory) { } -static const gchar * -gal_view_factory_calendar_work_week_get_type_code (GalViewFactory *factory) -{ - return "work_week_view"; -} - static GalView * gal_view_factory_calendar_work_week_new_view (GalViewFactory *factory, const gchar *title) @@ -90,7 +77,6 @@ static void gal_view_factory_calendar_work_week_class_init (GalViewFactoryClass *class) { class->gal_view_type = GAL_TYPE_VIEW_CALENDAR_WORK_WEEK; - class->get_type_code = gal_view_factory_calendar_work_week_get_type_code; class->new_view = gal_view_factory_calendar_work_week_new_view; } @@ -99,12 +85,6 @@ gal_view_factory_calendar_work_week_init (GalViewFactory *factory) { } -static const gchar * -gal_view_factory_calendar_week_get_type_code (GalViewFactory *factory) -{ - return "week_view"; -} - static GalView * gal_view_factory_calendar_week_new_view (GalViewFactory *factory, const gchar *title) @@ -118,7 +98,6 @@ static void gal_view_factory_calendar_week_class_init (GalViewFactoryClass *class) { class->gal_view_type = GAL_TYPE_VIEW_CALENDAR_WEEK; - class->get_type_code = gal_view_factory_calendar_week_get_type_code; class->new_view = gal_view_factory_calendar_week_new_view; } @@ -127,12 +106,6 @@ gal_view_factory_calendar_week_init (GalViewFactory *factory) { } -static const gchar * -gal_view_factory_calendar_month_get_type_code (GalViewFactory *factory) -{ - return "month_view"; -} - static GalView * gal_view_factory_calendar_month_new_view (GalViewFactory *factory, const gchar *title) @@ -146,7 +119,6 @@ static void gal_view_factory_calendar_month_class_init (GalViewFactoryClass *class) { class->gal_view_type = GAL_TYPE_VIEW_CALENDAR_MONTH; - class->get_type_code = gal_view_factory_calendar_month_get_type_code; class->new_view = gal_view_factory_calendar_month_new_view; } diff --git a/e-util/gal-view-factory-etable.c b/e-util/gal-view-factory-etable.c index 53f58e8c11..f9a6edd9ae 100644 --- a/e-util/gal-view-factory-etable.c +++ b/e-util/gal-view-factory-etable.c @@ -32,12 +32,6 @@ G_DEFINE_TYPE ( gal_view_factory_etable, GAL_TYPE_VIEW_FACTORY) -static const gchar * -view_factory_etable_get_type_code (GalViewFactory *factory) -{ - return "etable"; -} - static GalView * view_factory_etable_new_view (GalViewFactory *factory, const gchar *name) @@ -52,7 +46,6 @@ gal_view_factory_etable_class_init (GalViewFactoryEtableClass *class) view_factory_class = GAL_VIEW_FACTORY_CLASS (class); view_factory_class->gal_view_type = GAL_TYPE_VIEW_ETABLE; - view_factory_class->get_type_code = view_factory_etable_get_type_code; view_factory_class->new_view = view_factory_etable_new_view; } diff --git a/e-util/gal-view-factory.c b/e-util/gal-view-factory.c index c6de38a110..d235a63d86 100644 --- a/e-util/gal-view-factory.c +++ b/e-util/gal-view-factory.c @@ -50,13 +50,19 @@ const gchar * gal_view_factory_get_type_code (GalViewFactory *factory) { GalViewFactoryClass *class; + GalViewClass *view_class; g_return_val_if_fail (GAL_IS_VIEW_FACTORY (factory), NULL); class = GAL_VIEW_FACTORY_GET_CLASS (factory); - g_return_val_if_fail (class->get_type_code != NULL, NULL); - return class->get_type_code (factory); + /* All GalView types are registered statically, so there's no + * harm in dereferencing the class pointer after unreffing it. */ + view_class = g_type_class_ref (class->gal_view_type); + g_return_val_if_fail (GAL_IS_VIEW_CLASS (view_class), NULL); + g_type_class_unref (view_class); + + return view_class->type_code; } /** diff --git a/e-util/gal-view-factory.h b/e-util/gal-view-factory.h index 19f644e966..73cc02251e 100644 --- a/e-util/gal-view-factory.h +++ b/e-util/gal-view-factory.h @@ -64,7 +64,6 @@ struct _GalViewFactoryClass { GType gal_view_type; /* Methods */ - const gchar * (*get_type_code) (GalViewFactory *factory); GalView * (*new_view) (GalViewFactory *factory, const gchar *name); }; |