source-dialog: only add the source when it's not present

This commit is contained in:
Georges Basile Stavracas Neto
2015-05-25 12:35:31 -04:00
committed by Erick Pérez Castellanos
parent 81c2a929c6
commit 30ca4c1d57
+17
View File
@@ -148,6 +148,20 @@ add_source (GcalManager *manager,
gpointer user_data) gpointer user_data)
{ {
GcalSourceDialogPrivate *priv = GCAL_SOURCE_DIALOG (user_data)->priv; GcalSourceDialogPrivate *priv = GCAL_SOURCE_DIALOG (user_data)->priv;
GList *children, *l;
gboolean contains_source;
children = gtk_container_get_children (GTK_CONTAINER (priv->calendars_listbox));
contains_source = FALSE;
for (l = children; l != NULL; l = l->next)
{
if (g_object_get_data (l->data, "source") == source)
contains_source = TRUE;
}
if (!contains_source)
{
GtkWidget *row; GtkWidget *row;
row = make_row_from_source (GCAL_SOURCE_DIALOG (user_data), source); row = make_row_from_source (GCAL_SOURCE_DIALOG (user_data), source);
@@ -156,6 +170,9 @@ add_source (GcalManager *manager,
gtk_container_add (GTK_CONTAINER (priv->calendars_listbox), row); gtk_container_add (GTK_CONTAINER (priv->calendars_listbox), row);
} }
g_list_free (children);
}
/** /**
* action_widget_activated: * action_widget_activated:
* @widget: the button which emited the signal. * @widget: the button which emited the signal.