year-view: simplify empty sidebar list calculation

This commit is contained in:
Georges Basile Stavracas Neto
2016-07-05 23:55:33 -03:00
parent 9fcb224032
commit dfdaa3a590
+13 -8
View File
@@ -1724,7 +1724,7 @@ gcal_year_view_component_removed (ECalDataModelSubscriber *subscriber,
GList *children, *l;
ESource *source;
gchar *uuid;
gboolean update_sidebar_needed = FALSE;
gint number_of_children;
source = e_client_get_source (E_CLIENT (client));
if (rid != NULL)
@@ -1733,6 +1733,8 @@ gcal_year_view_component_removed (ECalDataModelSubscriber *subscriber,
uuid = g_strdup_printf ("%s:%s", e_source_get_uid (source), uid);
children = gtk_container_get_children (GTK_CONTAINER (year_view->events_sidebar));
number_of_children = g_list_length (children);
for (l = children; l != NULL; l = g_list_next (l))
{
GcalEventWidget *child_widget;
@@ -1741,22 +1743,25 @@ gcal_year_view_component_removed (ECalDataModelSubscriber *subscriber,
child_widget = GCAL_EVENT_WIDGET (gtk_bin_get_child (GTK_BIN (l->data)));
event = gcal_event_widget_get_event (child_widget);
if (child_widget != NULL && g_strcmp0 (uuid, gcal_event_get_uid (event)) == 0)
if (g_strcmp0 (uuid, gcal_event_get_uid (event)) == 0)
{
if (g_list_length (children) == 1)
update_sidebar_needed = TRUE;
gtk_widget_destroy (GTK_WIDGET (l->data));
number_of_children--;
}
}
g_list_free (children);
g_free (uuid);
if (update_sidebar_needed)
/*
* No children left visible, all the events were removed and now we have to show the
* 'No Events' placeholder.
*/
if (number_of_children == 0)
{
update_no_events_page (GCAL_YEAR_VIEW (subscriber));
gtk_stack_set_visible_child_name (GTK_STACK (year_view->navigator_stack), "no-events");
}
g_list_free (children);
g_free (uuid);
}
static void