diff options
author | Christopher James Lahey <clahey@ximian.com> | 2002-02-22 03:02:32 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2002-02-22 03:02:32 +0800 |
commit | 4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7 (patch) | |
tree | d7aa42c2b9babc10f770568299c72e95d6821523 /widgets/table/e-table-sorter.c | |
parent | 6f4bc53b15da64af3a4eb9c8c24cb216eb83aeab (diff) | |
download | gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar.gz gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar.bz2 gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar.lz gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar.xz gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.tar.zst gsoc2013-evolution-4f122d673cbe7cd1e11a951c5dd9f6d5e23431b7.zip |
Added e-table-memory-store.lo.
2002-02-21 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am (libgal_la_LIBADD): Added
e-table-memory-store.lo.
From gal/e-table/ChangeLog:
2002-02-21 Christopher James Lahey <clahey@ximian.com>
* Makefile.am (libetable_la_SOURCES): Added
e-table-memory-store.c.
(libetableinclude_HEADERS): Added e-table-memory-store.h.
* e-table-config-no-group.glade, e-table-config.glade: Updated
these.
* e-table-config.c, e-table-config.h: Updated this to have a
working field list editor.
* e-table-memory-store.c, e-table-memory-store.h: New ETableModel
that is a complete store of all the data in your table. No
callbacks at all.
* e-table-subset-variable.c, e-table-subset-variable.h
(e_table_subset_variable_clear): Added this simple function
* e-table-subset.c (etss_get_save_id): Made this return the row
number g_strdup_printfed if the source model doesn't support save
ids.
2002-02-20 Christopher James Lahey <clahey@ximian.com>
* e-table-sorter.c, e-table-sorter.h: Connect to the
model_rows_inserted, model_rows_deleted, and group_info_changed
here.
svn path=/trunk/; revision=15783
Diffstat (limited to 'widgets/table/e-table-sorter.c')
-rw-r--r-- | widgets/table/e-table-sorter.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/widgets/table/e-table-sorter.c b/widgets/table/e-table-sorter.c index 879234b742..6afafb6824 100644 --- a/widgets/table/e-table-sorter.c +++ b/widgets/table/e-table-sorter.c @@ -45,6 +45,8 @@ static ESorterClass *parent_class; static void ets_model_changed (ETableModel *etm, ETableSorter *ets); static void ets_model_row_changed (ETableModel *etm, int row, ETableSorter *ets); static void ets_model_cell_changed (ETableModel *etm, int col, int row, ETableSorter *ets); +static void ets_model_rows_inserted (ETableModel *etm, int row, int count, ETableSorter *ets); +static void ets_model_rows_deleted (ETableModel *etm, int row, int count, ETableSorter *ets); static void ets_sort_info_changed (ETableSortInfo *info, ETableSorter *ets); static void ets_clean (ETableSorter *ets); static void ets_sort (ETableSorter *ets); @@ -67,13 +69,22 @@ ets_destroy (GtkObject *object) ets->table_model_row_changed_id); gtk_signal_disconnect (GTK_OBJECT (ets->source), ets->table_model_cell_changed_id); + gtk_signal_disconnect (GTK_OBJECT (ets->source), + ets->table_model_rows_inserted_id); + gtk_signal_disconnect (GTK_OBJECT (ets->source), + ets->table_model_rows_deleted_id); gtk_signal_disconnect (GTK_OBJECT (ets->sort_info), ets->sort_info_changed_id); + gtk_signal_disconnect (GTK_OBJECT (ets->sort_info), + ets->group_info_changed_id); ets->table_model_changed_id = 0; ets->table_model_row_changed_id = 0; ets->table_model_cell_changed_id = 0; + ets->table_model_rows_inserted_id = 0; + ets->table_model_rows_deleted_id = 0; ets->sort_info_changed_id = 0; + ets->group_info_changed_id = 0; if (ets->sort_info) gtk_object_unref(GTK_OBJECT(ets->sort_info)); @@ -95,6 +106,8 @@ ets_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) if (ets->sort_info) { if (ets->sort_info_changed_id) gtk_signal_disconnect(GTK_OBJECT(ets->sort_info), ets->sort_info_changed_id); + if (ets->group_info_changed_id) + gtk_signal_disconnect(GTK_OBJECT(ets->sort_info), ets->group_info_changed_id); gtk_object_unref(GTK_OBJECT(ets->sort_info)); } @@ -102,6 +115,8 @@ ets_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) gtk_object_ref(GTK_OBJECT(ets->sort_info)); ets->sort_info_changed_id = gtk_signal_connect (GTK_OBJECT (ets->sort_info), "sort_info_changed", GTK_SIGNAL_FUNC (ets_sort_info_changed), ets); + ets->group_info_changed_id = gtk_signal_connect (GTK_OBJECT (ets->sort_info), "group_info_changed", + GTK_SIGNAL_FUNC (ets_sort_info_changed), ets); ets_clean (ets); break; @@ -155,7 +170,10 @@ ets_init (ETableSorter *ets) ets->table_model_changed_id = 0; ets->table_model_row_changed_id = 0; ets->table_model_cell_changed_id = 0; + ets->table_model_rows_inserted_id = 0; + ets->table_model_rows_deleted_id = 0; ets->sort_info_changed_id = 0; + ets->group_info_changed_id = 0; } E_MAKE_TYPE(e_table_sorter, "ETableSorter", ETableSorter, ets_class_init, ets_init, PARENT_TYPE); @@ -178,8 +196,14 @@ e_table_sorter_new (ETableModel *source, ETableHeader *full_header, ETableSortIn GTK_SIGNAL_FUNC (ets_model_row_changed), ets); ets->table_model_cell_changed_id = gtk_signal_connect (GTK_OBJECT (source), "model_cell_changed", GTK_SIGNAL_FUNC (ets_model_cell_changed), ets); + ets->table_model_rows_inserted_id = gtk_signal_connect (GTK_OBJECT (source), "model_rows_inserted", + GTK_SIGNAL_FUNC (ets_model_rows_inserted), ets); + ets->table_model_rows_deleted_id = gtk_signal_connect (GTK_OBJECT (source), "model_rows_deleted", + GTK_SIGNAL_FUNC (ets_model_rows_deleted), ets); ets->sort_info_changed_id = gtk_signal_connect (GTK_OBJECT (sort_info), "sort_info_changed", GTK_SIGNAL_FUNC (ets_sort_info_changed), ets); + ets->group_info_changed_id = gtk_signal_connect (GTK_OBJECT (sort_info), "group_info_changed", + GTK_SIGNAL_FUNC (ets_sort_info_changed), ets); return ets; } @@ -203,6 +227,18 @@ ets_model_cell_changed (ETableModel *etm, int col, int row, ETableSorter *ets) } static void +ets_model_rows_inserted (ETableModel *etm, int row, int count, ETableSorter *ets) +{ + ets_clean(ets); +} + +static void +ets_model_rows_deleted (ETableModel *etm, int row, int count, ETableSorter *ets) +{ + ets_clean(ets); +} + +static void ets_sort_info_changed (ETableSortInfo *info, ETableSorter *ets) { d(g_print ("sort info changed\n")); |