[gnome-todo/wip/selection-mode] window: remove list item on signal
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo/wip/selection-mode] window: remove list item on signal
- Date: Sun, 23 Aug 2015 00:35:26 +0000 (UTC)
commit d3e9f922168a480879c39158b98d4b372920a1ff
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sat Aug 22 19:48:29 2015 -0300
window: remove list item on signal
When manager sends the ::list-removed signal, remove the
related task list item if it exists.
src/gtd-window.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/src/gtd-window.c b/src/gtd-window.c
index 577aa1a..356329a 100644
--- a/src/gtd-window.c
+++ b/src/gtd-window.c
@@ -429,6 +429,26 @@ gtd_window__list_added (GtdManager *manager,
}
static void
+gtd_window__list_removed (GtdManager *manager,
+ GtdTaskList *list,
+ gpointer user_data)
+{
+ GtdWindowPrivate *priv = GTD_WINDOW (user_data)->priv;
+ GList *children;
+ GList *l;
+
+ children = gtk_container_get_children (GTK_CONTAINER (priv->lists_flowbox));
+
+ for (l = children; l != NULL; l = l->next)
+ {
+ if (gtd_task_list_item_get_list (l->data) == list)
+ gtk_widget_destroy (l->data);
+ }
+
+ g_list_free (children);
+}
+
+static void
gtd_window_constructed (GObject *object)
{
GtdWindowPrivate *priv = GTD_WINDOW (object)->priv;
@@ -522,6 +542,10 @@ gtd_window_set_property (GObject *object,
"list-added",
G_CALLBACK (gtd_window__list_added),
self);
+ g_signal_connect (self->priv->manager,
+ "list-removed",
+ G_CALLBACK (gtd_window__list_removed),
+ self);
/* Add already loaded lists */
lists = gtd_manager_get_task_lists (self->priv->manager);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]