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
This commit is contained in:

committed by
Chris Lahey

parent
f553e16d8f
commit
71a63f1498
@ -978,6 +978,7 @@ eti_freeze (ETableItem *eti)
|
||||
static void
|
||||
eti_unfreeze (ETableItem *eti)
|
||||
{
|
||||
g_return_if_fail (eti->frozen_count != 0);
|
||||
eti->frozen_count --;
|
||||
if (eti->frozen_count == 0 && eti->queue_show_cursor) {
|
||||
eti_show_cursor (eti, 0);
|
||||
@ -1210,7 +1211,8 @@ eti_add_table_model (ETableItem *eti, ETableModel *table_model)
|
||||
if (eti->source_model)
|
||||
gtk_object_ref(GTK_OBJECT(eti->source_model));
|
||||
}
|
||||
|
||||
|
||||
eti_freeze (eti);
|
||||
eti_table_model_changed (table_model, eti);
|
||||
}
|
||||
|
||||
|
@ -571,6 +571,9 @@ e_tree_memory_node_remove (ETreeMemory *etree, ETreePath node)
|
||||
if (path == etree->priv->root)
|
||||
etree->priv->root = NULL;
|
||||
|
||||
if (!etree->priv->frozen)
|
||||
e_tree_model_node_deleted(E_TREE_MODEL(etree), path);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@ enum {
|
||||
NODE_COL_CHANGED,
|
||||
NODE_INSERTED,
|
||||
NODE_REMOVED,
|
||||
NODE_DELETED,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@ -121,6 +122,14 @@ e_tree_model_class_init (GtkObjectClass *klass)
|
||||
e_marshal_NONE__POINTER_POINTER_INT,
|
||||
GTK_TYPE_NONE, 3, GTK_TYPE_POINTER, GTK_TYPE_POINTER, GTK_TYPE_INT);
|
||||
|
||||
e_tree_model_signals [NODE_DELETED] =
|
||||
gtk_signal_new ("node_deleted",
|
||||
GTK_RUN_LAST,
|
||||
E_OBJECT_CLASS_TYPE (klass),
|
||||
GTK_SIGNAL_OFFSET (ETreeModelClass, node_deleted),
|
||||
gtk_marshal_NONE__POINTER,
|
||||
GTK_TYPE_NONE, 1, GTK_TYPE_POINTER);
|
||||
|
||||
E_OBJECT_CLASS_ADD_SIGNALS (klass, e_tree_model_signals, LAST_SIGNAL);
|
||||
|
||||
tree_class->get_root = NULL;
|
||||
@ -165,6 +174,7 @@ e_tree_model_class_init (GtkObjectClass *klass)
|
||||
tree_class->node_col_changed = NULL;
|
||||
tree_class->node_inserted = NULL;
|
||||
tree_class->node_removed = NULL;
|
||||
tree_class->node_deleted = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -312,6 +322,24 @@ e_tree_model_node_removed (ETreeModel *tree_model, ETreePath parent_node, ETree
|
||||
parent_node, removed_node, old_position);
|
||||
}
|
||||
|
||||
/**
|
||||
* e_tree_model_node_deleted:
|
||||
* @tree_model:
|
||||
* @deleted_node:
|
||||
*
|
||||
*
|
||||
**/
|
||||
void
|
||||
e_tree_model_node_deleted (ETreeModel *tree_model, ETreePath deleted_node)
|
||||
{
|
||||
g_return_if_fail (tree_model != NULL);
|
||||
g_return_if_fail (E_IS_TREE_MODEL (tree_model));
|
||||
|
||||
gtk_signal_emit (GTK_OBJECT (tree_model),
|
||||
e_tree_model_signals [NODE_DELETED],
|
||||
deleted_node);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@ -97,6 +97,11 @@ struct ETreeModelClass {
|
||||
/*
|
||||
* Signals
|
||||
*/
|
||||
/* During remove, the ETreePath of the child is removed from
|
||||
* the tree but is still valid. At node_deleted, the
|
||||
* ETreePath is no longer valid.
|
||||
*/
|
||||
|
||||
void (*pre_change) (ETreeModel *etm);
|
||||
void (*no_change) (ETreeModel *etm);
|
||||
void (*node_changed) (ETreeModel *etm, ETreePath node);
|
||||
@ -104,6 +109,7 @@ struct ETreeModelClass {
|
||||
void (*node_col_changed) (ETreeModel *etm, ETreePath node, int col);
|
||||
void (*node_inserted) (ETreeModel *etm, ETreePath parent, ETreePath inserted_node);
|
||||
void (*node_removed) (ETreeModel *etm, ETreePath parent, ETreePath removed_node, int old_position);
|
||||
void (*node_deleted) (ETreeModel *etm, ETreePath deleted_node);
|
||||
};
|
||||
GtkType e_tree_model_get_type (void);
|
||||
ETreeModel *e_tree_model_new (void);
|
||||
@ -201,6 +207,8 @@ void e_tree_model_node_removed (ETreeModel *tree_model,
|
||||
ETreePath parent_node,
|
||||
ETreePath removed_node,
|
||||
int old_position);
|
||||
void e_tree_model_node_deleted (ETreeModel *tree_model,
|
||||
ETreePath deleted_node);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -99,6 +99,7 @@ struct ETreeSortedPriv {
|
||||
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 sort_info_changed_id;
|
||||
int sort_idle_id;
|
||||
@ -611,6 +612,8 @@ ets_destroy (GtkObject *object)
|
||||
priv->tree_model_node_inserted_id);
|
||||
gtk_signal_disconnect (GTK_OBJECT (priv->source),
|
||||
priv->tree_model_node_removed_id);
|
||||
gtk_signal_disconnect (GTK_OBJECT (priv->source),
|
||||
priv->tree_model_node_deleted_id);
|
||||
|
||||
gtk_object_unref (GTK_OBJECT (priv->source));
|
||||
priv->source = NULL;
|
||||
@ -622,6 +625,7 @@ ets_destroy (GtkObject *object)
|
||||
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;
|
||||
}
|
||||
|
||||
if (priv->sort_info) {
|
||||
@ -1153,6 +1157,12 @@ ets_proxy_node_removed (ETreeModel *etm, ETreePath parent, ETreePath child, int
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ets_proxy_node_deleted (ETreeModel *etm, ETreePath child, ETreeSorted *ets)
|
||||
{
|
||||
e_tree_model_node_deleted(E_TREE_MODEL(ets), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
ets_sort_info_changed (ETableSortInfo *sort_info, ETreeSorted *ets)
|
||||
{
|
||||
@ -1256,6 +1266,7 @@ e_tree_sorted_init (GtkObject *object)
|
||||
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->sort_info_changed_id = 0;
|
||||
priv->sort_idle_id = 0;
|
||||
@ -1300,6 +1311,8 @@ e_tree_sorted_construct (ETreeSorted *ets, ETreeModel *source, ETableHeader *ful
|
||||
GTK_SIGNAL_FUNC (ets_proxy_node_inserted), ets);
|
||||
ets->priv->tree_model_node_removed_id = gtk_signal_connect (GTK_OBJECT (source), "node_removed",
|
||||
GTK_SIGNAL_FUNC (ets_proxy_node_removed), ets);
|
||||
ets->priv->tree_model_node_deleted_id = gtk_signal_connect (GTK_OBJECT (source), "node_deleted",
|
||||
GTK_SIGNAL_FUNC (ets_proxy_node_deleted), ets);
|
||||
|
||||
ets->priv->sort_info_changed_id = gtk_signal_connect (GTK_OBJECT (sort_info), "sort_info_changed",
|
||||
GTK_SIGNAL_FUNC (ets_sort_info_changed), ets);
|
||||
|
Reference in New Issue
Block a user