aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-selection-model.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-11-01 07:42:08 +0800
committerChris Lahey <clahey@src.gnome.org>2001-11-01 07:42:08 +0800
commit71a63f1498b615c98a543138532cbbfc64cd616f (patch)
tree413f3a87e737bd79661cf82567846ddc1f3d88c1 /widgets/table/e-tree-selection-model.c
parentf553e16d8fc2a714a7f735ac2f7ee496afa37a57 (diff)
downloadgsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar.gz
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar.bz2
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar.lz
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar.xz
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.tar.zst
gsoc2013-evolution-71a63f1498b615c98a543138532cbbfc64cd616f.zip
Bumped the version number to 0.16.99.0 and GAL_CURRENT to 17.
2001-10-31 Christopher James Lahey <clahey@ximian.com> * configure.in: Bumped the version number to 0.16.99.0 and GAL_CURRENT to 17. From gal/e-table/ChangeLog: 2001-10-31 Christopher James Lahey <clahey@ximian.com> * e-table-item.c (eti_unfreeze): Check for unfreezing past 0 here and give a warning. (eti_add_table_model): Call eti_freeze here since eti_table_model_changed will call unfreeze. * e-tree-memory.c (e_tree_memory_node_remove): Send deleted signal after freeing the child. * e-tree-model.c, e-tree-model.h: Added node_deleted signal. removed/deleted signals will always come in pairs in that order with a single pre_change for both of them. * e-tree-selection-model.c (etsm_node_deleted): Clear the tree on deleted here instead of on removed. * e-tree-sorted.c (ets_proxy_node_deleted): Chain deleted here. Chains to NULL node which is fine for now. svn path=/trunk/; revision=14557
Diffstat (limited to 'widgets/table/e-tree-selection-model.c')
-rw-r--r--widgets/table/e-tree-selection-model.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/widgets/table/e-tree-selection-model.c b/widgets/table/e-tree-selection-model.c
index 7914cb022a..87c17b7e80 100644
--- a/widgets/table/e-tree-selection-model.c
+++ b/widgets/table/e-tree-selection-model.c
@@ -79,6 +79,7 @@ struct ETreeSelectionModelPriv {
int tree_model_node_col_changed_id;
int tree_model_node_inserted_id;
int tree_model_node_removed_id;
+ int tree_model_node_deleted_id;
int sorted_model_node_resorted_id;
};
@@ -378,7 +379,7 @@ etsm_no_change (ETreeModel *etm, ETreeSelectionModel *etsm)
}
static void
-etsm_node_changed (ETreeModel *etm, ETreePath node, ETreeSelectionModel *etsm)
+clear_tree (ETreeSelectionModel *etsm, ETreeModel *etm)
{
int cursor_row;
@@ -407,6 +408,12 @@ etsm_node_changed (ETreeModel *etm, ETreePath node, ETreeSelectionModel *etsm)
g_free (etsm->priv->cursor_save_id);
etsm->priv->cursor_save_id = NULL;
+}
+
+static void
+etsm_node_changed (ETreeModel *etm, ETreePath node, ETreeSelectionModel *etsm)
+{
+ clear_tree (etsm, etm);
etsm_unfreeze (etsm);
}
@@ -429,7 +436,8 @@ etsm_node_col_changed (ETreeModel *etm, ETreePath node, int col, ETreeSelectionM
static void
etsm_node_inserted (ETreeModel *etm, ETreePath parent, ETreePath child, ETreeSelectionModel *etsm)
{
- etsm_node_changed(etm, parent, etsm);
+ clear_tree (etsm, etm);
+ etsm_unfreeze (etsm);
#if 0
ETreeSelectionModelNode *node;
ETreePath path;
@@ -451,7 +459,13 @@ etsm_node_inserted (ETreeModel *etm, ETreePath parent, ETreePath child, ETreeSel
static void
etsm_node_removed (ETreeModel *etm, ETreePath parent, ETreePath child, int old_position, ETreeSelectionModel *etsm)
{
- etsm_node_changed(etm, parent, etsm);
+}
+
+static void
+etsm_node_deleted (ETreeModel *etm, ETreePath parent, ETreePath child, int old_position, ETreeSelectionModel *etsm)
+{
+ clear_tree (etsm, etm);
+ etsm_unfreeze (etsm);
}
@@ -492,6 +506,8 @@ add_model(ETreeSelectionModel *etsm, ETreeModel *model)
GTK_SIGNAL_FUNC (etsm_node_inserted), etsm);
priv->tree_model_node_removed_id = gtk_signal_connect_after (GTK_OBJECT (priv->model), "node_removed",
GTK_SIGNAL_FUNC (etsm_node_removed), etsm);
+ priv->tree_model_node_deleted_id = gtk_signal_connect_after (GTK_OBJECT (priv->model), "node_deleted",
+ GTK_SIGNAL_FUNC (etsm_node_deleted), etsm);
}
static void
@@ -516,6 +532,8 @@ drop_model(ETreeSelectionModel *etsm)
priv->tree_model_node_inserted_id);
gtk_signal_disconnect (GTK_OBJECT (priv->model),
priv->tree_model_node_removed_id);
+ gtk_signal_disconnect (GTK_OBJECT (priv->model),
+ priv->tree_model_node_deleted_id);
gtk_object_unref (GTK_OBJECT (priv->model));
priv->model = NULL;
@@ -527,6 +545,7 @@ drop_model(ETreeSelectionModel *etsm)
priv->tree_model_node_col_changed_id = 0;
priv->tree_model_node_inserted_id = 0;
priv->tree_model_node_removed_id = 0;
+ priv->tree_model_node_deleted_id = 0;
}
@@ -1231,6 +1250,7 @@ e_tree_selection_model_init (ETreeSelectionModel *etsm)
priv->tree_model_node_col_changed_id = 0;
priv->tree_model_node_inserted_id = 0;
priv->tree_model_node_removed_id = 0;
+ priv->tree_model_node_deleted_id = 0;
priv->sorted_model_node_resorted_id = 0;
}