diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-07-02 21:22:18 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-07-02 22:34:12 +0800 |
commit | f267827d67d3fd11478fbf94da9cd6095400a49c (patch) | |
tree | 29bf07f39ab001ea53bdb1bd67c32242e53c0944 /modules/calendar/e-memo-shell-view-private.c | |
parent | dfc653bb43a6311c04d7881c2d1b1642c081f839 (diff) | |
download | gsoc2013-evolution-f267827d67d3fd11478fbf94da9cd6095400a49c.tar.gz 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/calendar/e-memo-shell-view-private.c')
-rw-r--r-- | modules/calendar/e-memo-shell-view-private.c | 16 |
1 files changed, 10 insertions, 6 deletions
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); } |