event: implement GInitable

Since the event creation can fail, lets make it a GInitable
so that we can fail during initialization.

https://bugzilla.gnome.org/show_bug.cgi?id=763166
This commit is contained in:
Georges Basile Stavracas Neto
2016-09-28 00:07:28 -03:00
parent e79bdfb933
commit f1069c96d6
8 changed files with 155 additions and 24 deletions
+22 -2
View File
@@ -370,8 +370,18 @@ gcal_subscriber_view_component_added (ECalDataModelSubscriber *subscriber,
{
GtkWidget *event_widget;
GcalEvent *event;
GError *error;
error = NULL;
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
if (error)
{
g_message ("Error creating event: %s", error->message);
g_clear_error (&error);
return;
}
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp);
event_widget = gcal_event_widget_new (event);
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (event_widget), e_client_is_readonly (E_CLIENT (client)));
@@ -390,9 +400,19 @@ gcal_subscriber_view_component_modified (ECalDataModelSubscriber *subscriber,
GList *l;
GtkWidget *new_widget;
GcalEvent *event;
GError *error;
error = NULL;
priv = gcal_subscriber_view_get_instance_private (GCAL_SUBSCRIBER_VIEW (subscriber));
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp);
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
if (error)
{
g_message ("Error creating event: %s", error->message);
g_clear_error (&error);
return;
}
new_widget = gcal_event_widget_new (event);
l = g_hash_table_lookup (priv->children, gcal_event_get_uid (event));