[gnome-calendar] year-view: simplify empty sidebar list calculation
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] year-view: simplify empty sidebar list calculation
- Date: Wed, 6 Jul 2016 06:01:51 +0000 (UTC)
commit dfdaa3a59061db7bdc8b3595fbbccac94991c034
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Jul 5 23:55:33 2016 -0300
year-view: simplify empty sidebar list calculation
src/gcal-year-view.c | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/src/gcal-year-view.c b/src/gcal-year-view.c
index a3e1b36..990af1d 100644
--- a/src/gcal-year-view.c
+++ b/src/gcal-year-view.c
@@ -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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]