aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-subset.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-08-03 00:56:26 +0800
committerChris Lahey <clahey@src.gnome.org>2000-08-03 00:56:26 +0800
commit5fbcc4828efb084344e9c5fd42ebccb288ee492f (patch)
treeba3fe53ec556c7548b6517c24925ada769d3c079 /widgets/table/e-table-subset.c
parent2c7ed49b25b0ab36e003427083b331bd5bc4a61f (diff)
downloadgsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar.gz
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar.bz2
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar.lz
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar.xz
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.tar.zst
gsoc2013-evolution-5fbcc4828efb084344e9c5fd42ebccb288ee492f.zip
Add a handler for "model_pre_change" and properly stop editing.
2000-08-02 Christopher James Lahey <clahey@helixcode.com> * e-table-item.c, e-table-item.h: Add a handler for "model_pre_change" and properly stop editing. * e-table-model.c, e-table-model.h: Added a "model_pre_change" signal that gets sent before any row numbers are changed. * e-table-sorted-variable.c, e-table-subset-variable.c: Emit "model_pre_change" signals as appropriate. * e-table-subset.c, e-table-subset.h: Proxy "model_pre_changed" signals. svn path=/trunk/; revision=4472
Diffstat (limited to 'widgets/table/e-table-subset.c')
-rw-r--r--widgets/table/e-table-subset.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/widgets/table/e-table-subset.c b/widgets/table/e-table-subset.c
index 8ba5ed03e3..1cac0f88ea 100644
--- a/widgets/table/e-table-subset.c
+++ b/widgets/table/e-table-subset.c
@@ -26,12 +26,15 @@ etss_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT (etss->source));
gtk_signal_disconnect (GTK_OBJECT (etss->source),
+ etss->table_model_pre_change_id);
+ gtk_signal_disconnect (GTK_OBJECT (etss->source),
etss->table_model_changed_id);
gtk_signal_disconnect (GTK_OBJECT (etss->source),
etss->table_model_row_changed_id);
gtk_signal_disconnect (GTK_OBJECT (etss->source),
etss->table_model_cell_changed_id);
+ etss->table_model_pre_change_id = 0;
etss->table_model_changed_id = 0;
etss->table_model_row_changed_id = 0;
etss->table_model_cell_changed_id = 0;
@@ -153,6 +156,12 @@ etss_class_init (GtkObjectClass *klass)
E_MAKE_TYPE(e_table_subset, "ETableSubset", ETableSubset, etss_class_init, NULL, PARENT_TYPE);
static void
+etss_proxy_model_pre_change (ETableModel *etm, ETableSubset *etss)
+{
+ e_table_model_pre_change (E_TABLE_MODEL (etss));
+}
+
+static void
etss_proxy_model_changed (ETableModel *etm, ETableSubset *etss)
{
e_table_model_changed (E_TABLE_MODEL (etss));
@@ -206,6 +215,8 @@ e_table_subset_construct (ETableSubset *etss, ETableModel *source, int nvals)
for (i = 0; i < nvals; i++)
etss->map_table [i] = i;
+ etss->table_model_pre_change_id = gtk_signal_connect (GTK_OBJECT (source), "model_pre_change",
+ GTK_SIGNAL_FUNC (etss_proxy_model_pre_change), etss);
etss->table_model_changed_id = gtk_signal_connect (GTK_OBJECT (source), "model_changed",
GTK_SIGNAL_FUNC (etss_proxy_model_changed), etss);
etss->table_model_row_changed_id = gtk_signal_connect (GTK_OBJECT (source), "model_row_changed",