aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-07-02 21:22:18 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-07-02 22:34:12 +0800
commitf267827d67d3fd11478fbf94da9cd6095400a49c (patch)
tree29bf07f39ab001ea53bdb1bd67c32242e53c0944 /modules
parentdfc653bb43a6311c04d7881c2d1b1642c081f839 (diff)
downloadgsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.gz
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.bz2
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.lz
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.xz
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.zst
gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.zip
ETableSpecification: Implement GInitable.
e_table_specification_new() now takes a table specification filename and a GError and parses the file as part of instance creation. If a file or parse error occurs, e_table_specification_new() returns NULL. This replaces e_table_specification_load_from_file(). New functions: e_table_specification_get_filename() Removed functions: e_table_specification_load_from_file()
Diffstat (limited to 'modules')
-rw-r--r--modules/addressbook/e-book-shell-view-private.c16
-rw-r--r--modules/calendar/e-cal-shell-view-private.c16
-rw-r--r--modules/calendar/e-memo-shell-view-private.c16
-rw-r--r--modules/calendar/e-task-shell-view-private.c16
-rw-r--r--modules/mail/e-mail-shell-view-private.c16
5 files changed, 50 insertions, 30 deletions
diff --git a/modules/addressbook/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c
index 70fb2c32b0..eb7f3e074c 100644
--- a/modules/addressbook/e-book-shell-view-private.c
+++ b/modules/addressbook/e-book-shell-view-private.c
@@ -463,22 +463,26 @@ book_shell_view_load_view_collection (EShellViewClass *shell_view_class)
ETableSpecification *spec;
const gchar *base_dir;
gchar *filename;
+ GError *local_error = NULL;
collection = shell_view_class->view_collection;
base_dir = EVOLUTION_ETSPECDIR;
- spec = e_table_specification_new ();
filename = g_build_filename (base_dir, ETSPEC_FILENAME, NULL);
- if (!e_table_specification_load_from_file (spec, filename))
- g_critical (
- "Unable to load ETable specification file "
- "for address book");
- g_free (filename);
+ spec = e_table_specification_new (filename, &local_error);
+
+ /* Failure here is fatal. */
+ if (local_error != NULL) {
+ g_error ("%s: %s", filename, local_error->message);
+ g_assert_not_reached ();
+ }
factory = gal_view_factory_etable_new (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
+
g_object_unref (spec);
+ g_free (filename);
factory = gal_view_factory_minicard_new ();
gal_view_collection_add_factory (collection, factory);
diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c
index 8f5ce93792..c8ace44255 100644
--- a/modules/calendar/e-cal-shell-view-private.c
+++ b/modules/calendar/e-cal-shell-view-private.c
@@ -419,17 +419,19 @@ cal_shell_view_load_view_collection (EShellViewClass *shell_view_class)
ETableSpecification *spec;
const gchar *base_dir;
gchar *filename;
+ GError *local_error = NULL;
collection = shell_view_class->view_collection;
base_dir = EVOLUTION_ETSPECDIR;
- spec = e_table_specification_new ();
filename = g_build_filename (base_dir, ETSPEC_FILENAME, NULL);
- if (!e_table_specification_load_from_file (spec, filename))
- g_critical (
- "Unable to load ETable specification file "
- "for calendars");
- g_free (filename);
+ spec = e_table_specification_new (filename, &local_error);
+
+ /* Failure here is fatal. */
+ if (local_error != NULL) {
+ g_error ("%s: %s", filename, local_error->message);
+ g_assert_not_reached ();
+ }
factory = calendar_view_factory_new (GNOME_CAL_DAY_VIEW);
gal_view_collection_add_factory (collection, factory);
@@ -450,7 +452,9 @@ cal_shell_view_load_view_collection (EShellViewClass *shell_view_class)
factory = gal_view_factory_etable_new (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
+
g_object_unref (spec);
+ g_free (filename);
gal_view_collection_load (collection);
}
diff --git a/modules/calendar/e-memo-shell-view-private.c b/modules/calendar/e-memo-shell-view-private.c
index 73421854be..e83685548f 100644
--- a/modules/calendar/e-memo-shell-view-private.c
+++ b/modules/calendar/e-memo-shell-view-private.c
@@ -129,22 +129,26 @@ memo_shell_view_load_view_collection (EShellViewClass *shell_view_class)
ETableSpecification *spec;
const gchar *base_dir;
gchar *filename;
+ GError *local_error = NULL;
collection = shell_view_class->view_collection;
base_dir = EVOLUTION_ETSPECDIR;
- spec = e_table_specification_new ();
filename = g_build_filename (base_dir, ETSPEC_FILENAME, NULL);
- if (!e_table_specification_load_from_file (spec, filename))
- g_critical (
- "Unable to load ETable specification file "
- "for memos");
- g_free (filename);
+ spec = e_table_specification_new (filename, &local_error);
+
+ /* Failure here is fatal. */
+ if (local_error != NULL) {
+ g_error ("%s: %s", filename, local_error->message);
+ g_assert_not_reached ();
+ }
factory = gal_view_factory_etable_new (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
+
g_object_unref (spec);
+ g_free (filename);
gal_view_collection_load (collection);
}
diff --git a/modules/calendar/e-task-shell-view-private.c b/modules/calendar/e-task-shell-view-private.c
index 1fb6e4a33a..5cba0571b7 100644
--- a/modules/calendar/e-task-shell-view-private.c
+++ b/modules/calendar/e-task-shell-view-private.c
@@ -194,22 +194,26 @@ task_shell_view_load_view_collection (EShellViewClass *shell_view_class)
ETableSpecification *spec;
const gchar *base_dir;
gchar *filename;
+ GError *local_error = NULL;
collection = shell_view_class->view_collection;
base_dir = EVOLUTION_ETSPECDIR;
- spec = e_table_specification_new ();
filename = g_build_filename (base_dir, ETSPEC_FILENAME, NULL);
- if (!e_table_specification_load_from_file (spec, filename))
- g_critical (
- "Unable to load ETable specification file "
- "for tasks");
- g_free (filename);
+ spec = e_table_specification_new (filename, &local_error);
+
+ /* Failure here is fatal. */
+ if (local_error != NULL) {
+ g_error ("%s: %s", filename, local_error->message);
+ g_assert_not_reached ();
+ }
factory = gal_view_factory_etable_new (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
+
g_object_unref (spec);
+ g_free (filename);
gal_view_collection_load (collection);
}
diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c
index 61cfd8b7ac..7779236e9e 100644
--- a/modules/mail/e-mail-shell-view-private.c
+++ b/modules/mail/e-mail-shell-view-private.c
@@ -545,22 +545,26 @@ mail_shell_view_load_view_collection (EShellViewClass *shell_view_class)
ETableSpecification *spec;
const gchar *base_dir;
gchar *filename;
+ GError *local_error = NULL;
collection = shell_view_class->view_collection;
base_dir = EVOLUTION_ETSPECDIR;
- spec = e_table_specification_new ();
filename = g_build_filename (base_dir, ETSPEC_FILENAME, NULL);
- if (!e_table_specification_load_from_file (spec, filename))
- g_critical (
- "Unable to load ETable specification file "
- "for mail");
- g_free (filename);
+ spec = e_table_specification_new (filename, &local_error);
+
+ /* Failure here is fatal. */
+ if (local_error != NULL) {
+ g_error ("%s: %s", filename, local_error->message);
+ g_assert_not_reached ();
+ }
factory = gal_view_factory_etable_new (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
+
g_object_unref (spec);
+ g_free (filename);
gal_view_collection_load (collection);
}