[evolution] Remove gal_view_collection_add_factory().



commit 7bb795b299758e6a81536b81c19693f353106105
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Jul 5 12:34:19 2013 -0400

    Remove gal_view_collection_add_factory().
    
    No longer needed.  Instead, use g_type_ensure() to ensure the necessary
    GalView subclasses are registered in the GType system before loading a
    GalViewCollection.  Best place to ensure types is from GClassInitFunc.

 .../evolution-util/evolution-util-sections.txt     |    1 -
 e-util/gal-view-collection.c                       |   31 -----------------
 e-util/gal-view-collection.h                       |    4 +--
 modules/addressbook/e-book-shell-view-private.c    |   23 +------------
 modules/addressbook/e-book-shell-view.c            |    6 +++
 modules/calendar/e-cal-shell-view-private.c        |   35 +-------------------
 modules/calendar/e-cal-shell-view.c                |    9 +++++
 modules/calendar/e-memo-shell-view-private.c       |   17 +---------
 modules/calendar/e-memo-shell-view.c               |    3 ++
 modules/calendar/e-task-shell-view-private.c       |   17 +---------
 modules/calendar/e-task-shell-view.c               |    3 ++
 modules/mail/e-mail-shell-view-private.c           |   17 +---------
 modules/mail/e-mail-shell-view.c                   |    3 ++
 13 files changed, 30 insertions(+), 139 deletions(-)
---
diff --git a/doc/reference/evolution-util/evolution-util-sections.txt 
b/doc/reference/evolution-util/evolution-util-sections.txt
index d82ba7d..23253e9 100644
--- a/doc/reference/evolution-util/evolution-util-sections.txt
+++ b/doc/reference/evolution-util/evolution-util-sections.txt
@@ -4593,7 +4593,6 @@ gal_view_collection_new
 gal_view_collection_get_system_directory
 gal_view_collection_get_user_directory
 gal_view_collection_set_storage_directories
-gal_view_collection_add_factory
 gal_view_collection_get_count
 gal_view_collection_get_view
 gal_view_collection_get_view_item
diff --git a/e-util/gal-view-collection.c b/e-util/gal-view-collection.c
index 617eaad..badd81b 100644
--- a/e-util/gal-view-collection.c
+++ b/e-util/gal-view-collection.c
@@ -38,8 +38,6 @@ struct _GalViewCollectionPrivate {
        GalViewCollectionItem **view_data;
        gint view_count;
 
-       GList *factory_list;
-
        GalViewCollectionItem **removed_view_data;
        gint removed_view_count;
 
@@ -185,12 +183,6 @@ gal_view_collection_dispose (GObject *object)
        priv->view_data = NULL;
        priv->view_count = 0;
 
-       g_list_foreach (
-               priv->factory_list,
-               (GFunc) g_object_unref, NULL);
-       g_list_free (priv->factory_list);
-       priv->factory_list = NULL;
-
        for (ii = 0; ii < priv->removed_view_count; ii++)
                gal_view_collection_item_free (priv->removed_view_data[ii]);
        g_free (priv->removed_view_data);
@@ -338,29 +330,6 @@ gal_view_collection_set_storage_directories (GalViewCollection *collection,
        g_object_notify (G_OBJECT (collection), "user-directory");
 }
 
-/**
- * gal_view_collection_add_factory
- * @collection: The view collection to add a factory to
- * @factory: The factory to add.  The @collection will add a reference
- * to the factory object, so you should unref it after calling this
- * function if you no longer need it.
- *
- * Adds the given factory to this collection.  This list is used both
- * when loading views from their xml description as well as when the
- * user tries to create a new view.
- */
-void
-gal_view_collection_add_factory (GalViewCollection *collection,
-                                 GalViewFactory *factory)
-{
-       g_return_if_fail (GAL_IS_VIEW_COLLECTION (collection));
-       g_return_if_fail (GAL_IS_VIEW_FACTORY (factory));
-
-       collection->priv->factory_list = g_list_prepend (
-               collection->priv->factory_list,
-               g_object_ref (factory));
-}
-
 static void
 view_changed (GalView *view,
               GalViewCollectionItem *item)
diff --git a/e-util/gal-view-collection.h b/e-util/gal-view-collection.h
index 5cc3554..700262e 100644
--- a/e-util/gal-view-collection.h
+++ b/e-util/gal-view-collection.h
@@ -23,7 +23,7 @@
 #ifndef GAL_VIEW_COLLECTION_H
 #define GAL_VIEW_COLLECTION_H
 
-#include <e-util/gal-view-factory.h>
+#include <e-util/gal-view.h>
 
 /* Standard GObject macros */
 #define GAL_TYPE_VIEW_COLLECTION \
@@ -91,8 +91,6 @@ void          gal_view_collection_set_storage_directories
                                                (GalViewCollection *collection,
                                                 const gchar *system_dir,
                                                 const gchar *local_dir);
-void           gal_view_collection_add_factory (GalViewCollection *collection,
-                                                GalViewFactory *factory);
 
 /* Query the view collection. */
 gint           gal_view_collection_get_count   (GalViewCollection *collection);
diff --git a/modules/addressbook/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c
index 7911220..cfb8213 100644
--- a/modules/addressbook/e-book-shell-view-private.c
+++ b/modules/addressbook/e-book-shell-view-private.c
@@ -27,8 +27,6 @@
 
 #include "e-book-shell-view-private.h"
 
-#include "addressbook/gui/widgets/gal-view-factory-minicard.h"
-
 static void
 open_contact (EBookShellView *book_shell_view,
               EContact *contact,
@@ -456,25 +454,6 @@ book_shell_view_source_removed_cb (ESourceRegistry *registry,
 }
 
 static void
-book_shell_view_load_view_collection (EShellViewClass *shell_view_class)
-{
-       GalViewCollection *collection;
-       GalViewFactory *factory;
-
-       collection = shell_view_class->view_collection;
-
-       factory = gal_view_factory_etable_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       factory = gal_view_factory_minicard_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       gal_view_collection_load (collection);
-}
-
-static void
 book_shell_view_notify_view_id_cb (EBookShellView *book_shell_view)
 {
        EBookShellContent *book_shell_content;
@@ -514,7 +493,7 @@ e_book_shell_view_private_init (EBookShellView *book_shell_view,
        priv->preview_index = -1;
 
        if (!gal_view_collection_loaded (shell_view_class->view_collection))
-               book_shell_view_load_view_collection (shell_view_class);
+               gal_view_collection_load (shell_view_class->view_collection);
 
        g_signal_connect (
                book_shell_view, "notify::view-id",
diff --git a/modules/addressbook/e-book-shell-view.c b/modules/addressbook/e-book-shell-view.c
index 1f76cad..c36d200 100644
--- a/modules/addressbook/e-book-shell-view.c
+++ b/modules/addressbook/e-book-shell-view.c
@@ -25,6 +25,8 @@
 
 #include "e-book-shell-view-private.h"
 
+#include "addressbook/gui/widgets/gal-view-minicard.h"
+
 static gpointer parent_class;
 static GType book_shell_view_type;
 
@@ -370,6 +372,10 @@ book_shell_view_class_init (EBookShellViewClass *class)
        shell_view_class->new_shell_sidebar = e_book_shell_sidebar_new;
        shell_view_class->execute_search = book_shell_view_execute_search;
        shell_view_class->update_actions = book_shell_view_update_actions;
+
+       /* Ensure the GalView types we need are registered. */
+       g_type_ensure (GAL_TYPE_VIEW_ETABLE);
+       g_type_ensure (GAL_TYPE_VIEW_MINICARD);
 }
 
 static void
diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c
index b4ed297..f559241 100644
--- a/modules/calendar/e-cal-shell-view-private.c
+++ b/modules/calendar/e-cal-shell-view-private.c
@@ -27,8 +27,6 @@
 
 #include "e-cal-shell-view-private.h"
 
-#include "calendar/gui/calendar-view-factory.h"
-
 #define CHECK_NB       5
 
 /* be compatible with older e-d-s for MeeGo */
@@ -412,37 +410,6 @@ cal_shell_view_backend_error_cb (EClientCache *client_cache,
 }
 
 static void
-cal_shell_view_load_view_collection (EShellViewClass *shell_view_class)
-{
-       GalViewCollection *collection;
-       GalViewFactory *factory;
-
-       collection = shell_view_class->view_collection;
-
-       factory = g_object_new (GAL_TYPE_VIEW_FACTORY_CALENDAR_DAY, NULL);
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       factory = g_object_new (GAL_TYPE_VIEW_FACTORY_CALENDAR_WORK_WEEK, NULL);
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       factory = g_object_new (GAL_TYPE_VIEW_FACTORY_CALENDAR_WEEK, NULL);
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       factory = g_object_new (GAL_TYPE_VIEW_FACTORY_CALENDAR_MONTH, NULL);
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       factory = gal_view_factory_etable_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       gal_view_collection_load (collection);
-}
-
-static void
 cal_shell_view_notify_view_id_cb (EShellView *shell_view)
 {
        GalViewInstance *view_instance;
@@ -467,7 +434,7 @@ e_cal_shell_view_private_init (ECalShellView *cal_shell_view,
                                EShellViewClass *shell_view_class)
 {
        if (!gal_view_collection_loaded (shell_view_class->view_collection))
-               cal_shell_view_load_view_collection (shell_view_class);
+               gal_view_collection_load (shell_view_class->view_collection);
 
        g_signal_connect (
                cal_shell_view, "notify::view-id",
diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c
index bacf4f4..5350265 100644
--- a/modules/calendar/e-cal-shell-view.c
+++ b/modules/calendar/e-cal-shell-view.c
@@ -25,6 +25,8 @@
 
 #include "e-cal-shell-view-private.h"
 
+#include "calendar/gui/calendar-view.h"
+
 static gpointer parent_class;
 static GType cal_shell_view_type;
 
@@ -595,6 +597,13 @@ cal_shell_view_class_init (ECalShellViewClass *class,
        shell_view_class->new_shell_sidebar = e_cal_shell_sidebar_new;
        shell_view_class->execute_search = cal_shell_view_execute_search;
        shell_view_class->update_actions = cal_shell_view_update_actions;
+
+       /* Ensure the GalView types we need are registered. */
+       g_type_ensure (GAL_TYPE_VIEW_CALENDAR_DAY);
+       g_type_ensure (GAL_TYPE_VIEW_CALENDAR_WORK_WEEK);
+       g_type_ensure (GAL_TYPE_VIEW_CALENDAR_WEEK);
+       g_type_ensure (GAL_TYPE_VIEW_CALENDAR_MONTH);
+       g_type_ensure (GAL_TYPE_VIEW_ETABLE);
 }
 
 static void
diff --git a/modules/calendar/e-memo-shell-view-private.c b/modules/calendar/e-memo-shell-view-private.c
index 26c43e1..264a175 100644
--- a/modules/calendar/e-memo-shell-view-private.c
+++ b/modules/calendar/e-memo-shell-view-private.c
@@ -122,21 +122,6 @@ memo_shell_view_backend_error_cb (EClientCache *client_cache,
 }
 
 static void
-memo_shell_view_load_view_collection (EShellViewClass *shell_view_class)
-{
-       GalViewCollection *collection;
-       GalViewFactory *factory;
-
-       collection = shell_view_class->view_collection;
-
-       factory = gal_view_factory_etable_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       gal_view_collection_load (collection);
-}
-
-static void
 memo_shell_view_notify_view_id_cb (EShellView *shell_view)
 {
        GalViewInstance *view_instance;
@@ -161,7 +146,7 @@ e_memo_shell_view_private_init (EMemoShellView *memo_shell_view,
                                 EShellViewClass *shell_view_class)
 {
        if (!gal_view_collection_loaded (shell_view_class->view_collection))
-               memo_shell_view_load_view_collection (shell_view_class);
+               gal_view_collection_load (shell_view_class->view_collection);
 
        g_signal_connect (
                memo_shell_view, "notify::view-id",
diff --git a/modules/calendar/e-memo-shell-view.c b/modules/calendar/e-memo-shell-view.c
index c271f9b..65ddf41 100644
--- a/modules/calendar/e-memo-shell-view.c
+++ b/modules/calendar/e-memo-shell-view.c
@@ -313,6 +313,9 @@ memo_shell_view_class_init (EMemoShellViewClass *class,
        shell_view_class->new_shell_sidebar = e_memo_shell_sidebar_new;
        shell_view_class->execute_search = memo_shell_view_execute_search;
        shell_view_class->update_actions = memo_shell_view_update_actions;
+
+       /* Ensure the GalView types we need are registered. */
+       g_type_ensure (GAL_TYPE_VIEW_ETABLE);
 }
 
 static void
diff --git a/modules/calendar/e-task-shell-view-private.c b/modules/calendar/e-task-shell-view-private.c
index ff42581..9fec6f5 100644
--- a/modules/calendar/e-task-shell-view-private.c
+++ b/modules/calendar/e-task-shell-view-private.c
@@ -187,21 +187,6 @@ task_shell_view_backend_error_cb (EClientCache *client_cache,
 }
 
 static void
-task_shell_view_load_view_collection (EShellViewClass *shell_view_class)
-{
-       GalViewCollection *collection;
-       GalViewFactory *factory;
-
-       collection = shell_view_class->view_collection;
-
-       factory = gal_view_factory_etable_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       gal_view_collection_load (collection);
-}
-
-static void
 task_shell_view_notify_view_id_cb (EShellView *shell_view)
 {
        GalViewInstance *view_instance;
@@ -226,7 +211,7 @@ e_task_shell_view_private_init (ETaskShellView *task_shell_view,
                                 EShellViewClass *shell_view_class)
 {
        if (!gal_view_collection_loaded (shell_view_class->view_collection))
-               task_shell_view_load_view_collection (shell_view_class);
+               gal_view_collection_load (shell_view_class->view_collection);
 
        g_signal_connect (
                task_shell_view, "notify::view-id",
diff --git a/modules/calendar/e-task-shell-view.c b/modules/calendar/e-task-shell-view.c
index b7684a3..c081bba 100644
--- a/modules/calendar/e-task-shell-view.c
+++ b/modules/calendar/e-task-shell-view.c
@@ -478,6 +478,9 @@ task_shell_view_class_init (ETaskShellViewClass *class,
                        NULL,
                        TRUE,
                        G_PARAM_READWRITE));
+
+       /* Ensure the GalView types we need are registered. */
+       g_type_ensure (GAL_TYPE_VIEW_ETABLE);
 }
 
 static void
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index 7bb3043..9c0132a 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -538,21 +538,6 @@ mail_shell_view_prepare_for_quit_cb (EMailShellView *mail_shell_view,
 }
 
 static void
-mail_shell_view_load_view_collection (EShellViewClass *shell_view_class)
-{
-       GalViewCollection *collection;
-       GalViewFactory *factory;
-
-       collection = shell_view_class->view_collection;
-
-       factory = gal_view_factory_etable_new ();
-       gal_view_collection_add_factory (collection, factory);
-       g_object_unref (factory);
-
-       gal_view_collection_load (collection);
-}
-
-static void
 mail_shell_view_notify_view_id_cb (EMailShellView *mail_shell_view)
 {
        EMailShellContent *mail_shell_content;
@@ -600,7 +585,7 @@ e_mail_shell_view_private_init (EMailShellView *mail_shell_view,
                                 EShellViewClass *shell_view_class)
 {
        if (!gal_view_collection_loaded (shell_view_class->view_collection))
-               mail_shell_view_load_view_collection (shell_view_class);
+               gal_view_collection_load (shell_view_class->view_collection);
 
        g_signal_connect (
                mail_shell_view, "notify::view-id",
diff --git a/modules/mail/e-mail-shell-view.c b/modules/mail/e-mail-shell-view.c
index a4d5e99..b294a54 100644
--- a/modules/mail/e-mail-shell-view.c
+++ b/modules/mail/e-mail-shell-view.c
@@ -1082,6 +1082,9 @@ mail_shell_view_class_init (EMailShellViewClass *class,
        shell_view_class->toggled = mail_shell_view_toggled;
        shell_view_class->execute_search = mail_shell_view_execute_search;
        shell_view_class->update_actions = mail_shell_view_update_actions;
+
+       /* Ensure the GalView types we need are registered. */
+       g_type_ensure (GAL_TYPE_VIEW_ETABLE);
 }
 
 static void


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