Removed the freeze/thaw stuff for the model. As Chris wisely pointed out,

2000-06-12  Federico Mena Quintero  <federico@helixcode.com>

	* e-table-model.[ch]: Removed the freeze/thaw stuff for the model.
	As Chris wisely pointed out, having freeze/thaw on the model makes
	its state inconsistent from the perspective of the views.

	* e-table-sorted-variable.c: Do not check for a frozen model.
	* e-table-subset.c: Likewise.
	* e-table-subset-variable.c: Likewise.

	* e-table-example-1.c: Removed the ETableModel thaw handler.
	* e-table-example-2.c: Likewise.
	* e-table-simple.c: Likewise.
	* e-table-size-test.c: Likewise.
	* test-check.c: Likewise.
	* test-cols.c: Likewise.
	* test-table.c: Likewise.

svn path=/trunk/; revision=3543
This commit is contained in:
Federico Mena Quintero
2000-06-13 00:41:47 +00:00
committed by Federico Mena Quintero
parent 40adaa82b3
commit 9de25e88aa
27 changed files with 123 additions and 268 deletions

View File

@ -1,3 +1,48 @@
2000-06-12 Federico Mena Quintero <federico@helixcode.com>
* e-table-model.[ch]: Removed the freeze/thaw stuff for the model.
As Chris wisely pointed out, having freeze/thaw on the model makes
its state inconsistent from the perspective of the views.
* e-table-sorted-variable.c: Do not check for a frozen model.
* e-table-subset.c: Likewise.
* e-table-subset-variable.c: Likewise.
* e-table-example-1.c: Removed the ETableModel thaw handler.
* e-table-example-2.c: Likewise.
* e-table-simple.c: Likewise.
* e-table-size-test.c: Likewise.
* test-check.c: Likewise.
* test-cols.c: Likewise.
* test-table.c: Likewise.
2000-06-08 Federico Mena Quintero <federico@helixcode.com>
* e-table-model.h (ETableModelClass): Added a freeze method.
* e-table-model.c (e_table_model_freeze): Call the freeze method
instead of the thaw method!
* e-table-simple.h (ETableSimple): Added the freeze function.
* e-table-simple.c (simple_thaw): Check whether the function
exists.
(simple_freeze): New handler.
(e_table_simple_new): Take in and set the freeze handler.
(e_table_simple_class_init): Set the freeze handler.
* test-check.c (check_test): Pass in the freeze handler to
e_table_simple_new().
* test-cols.c (multi_cols_test): Likewise.
* e-table-example-2.c (create_table): Likewise.
* e-table-example-1.c (create_table): Likewise.
* test-table.c (table_browser_test): Likewise.
(do_e_table_demo): Likewise.
2000-06-10 Chris Toshok <toshok@helixcode.com>
* e-tree-example-1.c (create_tree): supply the pixbufs here.

View File

@ -171,13 +171,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
/* This function is for when the model is unfrozen. This can mostly
be ignored for simple models. */
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table (void)
@ -200,7 +193,7 @@ create_table (void)
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
* Next we create a header. The ETableHeader is used in two
* different way. The first is the full_header. This is the

View File

@ -207,11 +207,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
}
}
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table ()
@ -239,7 +234,7 @@ create_table ()
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
Next we create a header. The ETableHeader is used in two
different way. The first is the full_header. This is the

View File

@ -197,7 +197,6 @@ e_table_model_class_init (GtkObjectClass *object_class)
klass->free_value = NULL;
klass->initialize_value = NULL;
klass->value_is_empty = NULL;
klass->thaw = NULL;
klass->model_changed = NULL;
klass->model_row_changed = NULL;
klass->model_cell_changed = NULL;
@ -280,24 +279,3 @@ e_table_model_row_deleted (ETableModel *e_table_model, int row)
gtk_signal_emit (GTK_OBJECT (e_table_model),
e_table_model_signals [MODEL_ROW_DELETED], row);
}
void
e_table_model_freeze (ETableModel *e_table_model)
{
g_return_if_fail (e_table_model != NULL);
g_return_if_fail (E_IS_TABLE_MODEL (e_table_model));
e_table_model->frozen = TRUE;
return ETM_CLASS (e_table_model)->thaw (e_table_model);
}
void
e_table_model_thaw (ETableModel *e_table_model)
{
g_return_if_fail (e_table_model != NULL);
g_return_if_fail (E_IS_TABLE_MODEL (e_table_model));
e_table_model->frozen = FALSE;
if (ETM_CLASS(e_table_model)->thaw)
ETM_CLASS (e_table_model)->thaw (e_table_model);
}

View File

@ -12,8 +12,6 @@
typedef struct {
GtkObject base;
guint frozen : 1;
} ETableModel;
typedef struct {
@ -37,7 +35,6 @@ typedef struct {
/* Return TRUE if value is equivalent to an empty cell. */
gboolean (*value_is_empty) (ETableModel *etm, int col, const void *value);
void (*thaw) (ETableModel *etm);
/*
* Signals
*/
@ -71,9 +68,6 @@ void e_table_model_free_value (ETableModel *e_table_model, int col,
void *e_table_model_initialize_value (ETableModel *e_table_model, int col);
gboolean e_table_model_value_is_empty (ETableModel *e_table_model, int col, const void *value);
void e_table_model_freeze (ETableModel *e_table_model);
void e_table_model_thaw (ETableModel *e_table_model);
/*
* Routines for emitting signals on the e_table
*/

View File

@ -111,14 +111,6 @@ simple_value_is_empty (ETableModel *etm, int col, const void *value)
return FALSE;
}
static void
simple_thaw (ETableModel *etm)
{
ETableSimple *simple = E_TABLE_SIMPLE(etm);
simple->thaw (etm, simple->data);
}
static void
e_table_simple_class_init (GtkObjectClass *object_class)
{
@ -133,7 +125,6 @@ e_table_simple_class_init (GtkObjectClass *object_class)
model_class->free_value = simple_free_value;
model_class->initialize_value = simple_initialize_value;
model_class->value_is_empty = simple_value_is_empty;
model_class->thaw = simple_thaw;
}
GtkType
@ -169,7 +160,6 @@ e_table_simple_new (ETableSimpleColumnCountFn col_count,
ETableSimpleFreeValueFn free_value,
ETableSimpleInitializeValueFn initialize_value,
ETableSimpleValueIsEmptyFn value_is_empty,
ETableSimpleThawFn thaw,
void *data)
{
ETableSimple *et;
@ -185,7 +175,6 @@ e_table_simple_new (ETableSimpleColumnCountFn col_count,
et->free_value = free_value;
et->initialize_value = initialize_value;
et->value_is_empty = value_is_empty;
et->thaw = thaw;
et->data = data;
return (ETableModel *) et;

View File

@ -19,7 +19,6 @@ typedef void *(*ETableSimpleDuplicateValueFn) (ETableModel *etm, int col,
typedef void (*ETableSimpleFreeValueFn) (ETableModel *etm, int col, void *val, void *data);
typedef void *(*ETableSimpleInitializeValueFn) (ETableModel *etm, int col, void *data);
typedef gboolean (*ETableSimpleValueIsEmptyFn) (ETableModel *etm, int col, const void *val, void *data);
typedef void (*ETableSimpleThawFn) (ETableModel *etm, void *data);
typedef struct {
ETableModel parent;
@ -33,7 +32,6 @@ typedef struct {
ETableSimpleFreeValueFn free_value;
ETableSimpleInitializeValueFn initialize_value;
ETableSimpleValueIsEmptyFn value_is_empty;
ETableSimpleThawFn thaw;
void *data;
} ETableSimple;
@ -52,7 +50,6 @@ ETableModel *e_table_simple_new (ETableSimpleColumnCountFn col_count,
ETableSimpleFreeValueFn free_value,
ETableSimpleInitializeValueFn initialize_value,
ETableSimpleValueIsEmptyFn value_is_empty,
ETableSimpleThawFn thaw,
void *data);
#endif /* _E_TABLE_SIMPLE_H_ */

View File

@ -171,13 +171,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
/* This function is for when the model is unfrozen. This can mostly
be ignored for simple models. */
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table (void)
@ -195,7 +188,7 @@ create_table (void)
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
* Next we create a header. The ETableHeader is used in two
* different way. The first is the full_header. This is the

View File

@ -159,8 +159,8 @@ etsv_add (ETableSubsetVariable *etssv,
}
etss->map_table[i] = row;
etss->n_map++;
if (!etm->frozen)
e_table_model_row_inserted (etm, i);
e_table_model_row_inserted (etm, i);
}
static void
@ -182,8 +182,8 @@ etsv_add_all (ETableSubsetVariable *etssv)
if (etsv->sort_idle_id == 0) {
etsv->sort_idle_id = g_idle_add_full(50, (GSourceFunc) etsv_sort_idle, etsv, NULL);
}
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
}
ETableModel *
@ -217,29 +217,25 @@ e_table_sorted_variable_new (ETableModel *source, ETableHeader *full_header, ETa
static void
etsv_proxy_model_changed (ETableModel *etm, ETableSortedVariable *etsv)
{
if (!E_TABLE_MODEL(etsv)->frozen){
/* FIXME: do_resort (); */
}
/* FIXME: do_resort (); */
}
static void
etsv_proxy_model_row_changed (ETableModel *etm, int row, ETableSortedVariable *etsv)
{
ETableSubsetVariable *etssv = E_TABLE_SUBSET_VARIABLE(etsv);
if (!E_TABLE_MODEL(etsv)->frozen){
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
static void
etsv_proxy_model_cell_changed (ETableModel *etm, int col, int row, ETableSortedVariable *etsv)
{
ETableSubsetVariable *etssv = E_TABLE_SUBSET_VARIABLE(etsv);
if (!E_TABLE_MODEL(etsv)->frozen){
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
static void

View File

@ -39,8 +39,8 @@ etssv_add (ETableSubsetVariable *etssv,
if (etss->map_table[i] >= row)
etss->map_table[i] ++;
etss->map_table[etss->n_map++] = row;
if (!etm->frozen)
e_table_model_row_inserted (etm, etss->n_map - 1);
e_table_model_row_inserted (etm, etss->n_map - 1);
}
static void
@ -57,8 +57,8 @@ etssv_add_all (ETableSubsetVariable *etssv)
}
for (i = 0; i < rows; i++)
etss->map_table[etss->n_map++] = i;
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
}
static gboolean
@ -74,8 +74,8 @@ etssv_remove (ETableSubsetVariable *etssv,
if (etss->map_table[i] == row) {
memmove (etss->map_table + i, etss->map_table + i + 1, (etss->n_map - i - 1) * sizeof(int));
etss->n_map --;
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
ret_val = TRUE;
break;
}

View File

@ -114,12 +114,6 @@ etss_value_is_empty (ETableModel *etm, int col, const void *value)
return e_table_model_value_is_empty (etss->source, col, value);
}
static void
etss_thaw (ETableModel *etm)
{
e_table_model_changed (etm);
}
static void
etss_class_init (GtkObjectClass *klass)
{
@ -138,7 +132,6 @@ etss_class_init (GtkObjectClass *klass)
table_class->free_value = etss_free_value;
table_class->initialize_value = etss_initialize_value;
table_class->value_is_empty = etss_value_is_empty;
table_class->thaw = etss_thaw;
}
E_MAKE_TYPE(e_table_subset, "ETableSubset", ETableSubset, etss_class_init, NULL, PARENT_TYPE);
@ -146,23 +139,20 @@ E_MAKE_TYPE(e_table_subset, "ETableSubset", ETableSubset, etss_class_init, NULL,
static void
etss_proxy_model_changed (ETableModel *etm, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen)
e_table_model_changed (E_TABLE_MODEL (etss));
e_table_model_changed (E_TABLE_MODEL (etss));
}
static void
etss_proxy_model_row_changed (ETableModel *etm, int row, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen){
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_row_changed (E_TABLE_MODEL (etss), i);
return;
}
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_row_changed (E_TABLE_MODEL (etss), i);
return;
}
}
}
@ -170,16 +160,14 @@ etss_proxy_model_row_changed (ETableModel *etm, int row, ETableSubset *etss)
static void
etss_proxy_model_cell_changed (ETableModel *etm, int col, int row, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen){
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_cell_changed (E_TABLE_MODEL (etss), col, i);
return;
}
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_cell_changed (E_TABLE_MODEL (etss), col, i);
return;
}
}
}

View File

@ -118,12 +118,6 @@ value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
static void
set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
{
@ -149,7 +143,7 @@ check_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header

View File

@ -124,12 +124,6 @@ set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
gnome_canvas_set_scroll_region (canvas, 0, 0, alloc->width, alloc->height);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
void
multi_cols_test (void)
{
@ -148,7 +142,7 @@ multi_cols_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header

View File

@ -202,12 +202,6 @@ value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
static void
set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
{
@ -234,7 +228,7 @@ table_browser_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header
@ -333,7 +327,7 @@ do_e_table_demo (const char *spec)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
full_header = e_table_header_new ();
cell_left_just = e_cell_text_new (e_table_model, NULL, GTK_JUSTIFY_LEFT);

View File

@ -171,13 +171,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
/* This function is for when the model is unfrozen. This can mostly
be ignored for simple models. */
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table (void)
@ -200,7 +193,7 @@ create_table (void)
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
* Next we create a header. The ETableHeader is used in two
* different way. The first is the full_header. This is the

View File

@ -207,11 +207,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
}
}
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table ()
@ -239,7 +234,7 @@ create_table ()
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
Next we create a header. The ETableHeader is used in two
different way. The first is the full_header. This is the

View File

@ -197,7 +197,6 @@ e_table_model_class_init (GtkObjectClass *object_class)
klass->free_value = NULL;
klass->initialize_value = NULL;
klass->value_is_empty = NULL;
klass->thaw = NULL;
klass->model_changed = NULL;
klass->model_row_changed = NULL;
klass->model_cell_changed = NULL;
@ -280,24 +279,3 @@ e_table_model_row_deleted (ETableModel *e_table_model, int row)
gtk_signal_emit (GTK_OBJECT (e_table_model),
e_table_model_signals [MODEL_ROW_DELETED], row);
}
void
e_table_model_freeze (ETableModel *e_table_model)
{
g_return_if_fail (e_table_model != NULL);
g_return_if_fail (E_IS_TABLE_MODEL (e_table_model));
e_table_model->frozen = TRUE;
return ETM_CLASS (e_table_model)->thaw (e_table_model);
}
void
e_table_model_thaw (ETableModel *e_table_model)
{
g_return_if_fail (e_table_model != NULL);
g_return_if_fail (E_IS_TABLE_MODEL (e_table_model));
e_table_model->frozen = FALSE;
if (ETM_CLASS(e_table_model)->thaw)
ETM_CLASS (e_table_model)->thaw (e_table_model);
}

View File

@ -12,8 +12,6 @@
typedef struct {
GtkObject base;
guint frozen : 1;
} ETableModel;
typedef struct {
@ -37,7 +35,6 @@ typedef struct {
/* Return TRUE if value is equivalent to an empty cell. */
gboolean (*value_is_empty) (ETableModel *etm, int col, const void *value);
void (*thaw) (ETableModel *etm);
/*
* Signals
*/
@ -71,9 +68,6 @@ void e_table_model_free_value (ETableModel *e_table_model, int col,
void *e_table_model_initialize_value (ETableModel *e_table_model, int col);
gboolean e_table_model_value_is_empty (ETableModel *e_table_model, int col, const void *value);
void e_table_model_freeze (ETableModel *e_table_model);
void e_table_model_thaw (ETableModel *e_table_model);
/*
* Routines for emitting signals on the e_table
*/

View File

@ -111,14 +111,6 @@ simple_value_is_empty (ETableModel *etm, int col, const void *value)
return FALSE;
}
static void
simple_thaw (ETableModel *etm)
{
ETableSimple *simple = E_TABLE_SIMPLE(etm);
simple->thaw (etm, simple->data);
}
static void
e_table_simple_class_init (GtkObjectClass *object_class)
{
@ -133,7 +125,6 @@ e_table_simple_class_init (GtkObjectClass *object_class)
model_class->free_value = simple_free_value;
model_class->initialize_value = simple_initialize_value;
model_class->value_is_empty = simple_value_is_empty;
model_class->thaw = simple_thaw;
}
GtkType
@ -169,7 +160,6 @@ e_table_simple_new (ETableSimpleColumnCountFn col_count,
ETableSimpleFreeValueFn free_value,
ETableSimpleInitializeValueFn initialize_value,
ETableSimpleValueIsEmptyFn value_is_empty,
ETableSimpleThawFn thaw,
void *data)
{
ETableSimple *et;
@ -185,7 +175,6 @@ e_table_simple_new (ETableSimpleColumnCountFn col_count,
et->free_value = free_value;
et->initialize_value = initialize_value;
et->value_is_empty = value_is_empty;
et->thaw = thaw;
et->data = data;
return (ETableModel *) et;

View File

@ -19,7 +19,6 @@ typedef void *(*ETableSimpleDuplicateValueFn) (ETableModel *etm, int col,
typedef void (*ETableSimpleFreeValueFn) (ETableModel *etm, int col, void *val, void *data);
typedef void *(*ETableSimpleInitializeValueFn) (ETableModel *etm, int col, void *data);
typedef gboolean (*ETableSimpleValueIsEmptyFn) (ETableModel *etm, int col, const void *val, void *data);
typedef void (*ETableSimpleThawFn) (ETableModel *etm, void *data);
typedef struct {
ETableModel parent;
@ -33,7 +32,6 @@ typedef struct {
ETableSimpleFreeValueFn free_value;
ETableSimpleInitializeValueFn initialize_value;
ETableSimpleValueIsEmptyFn value_is_empty;
ETableSimpleThawFn thaw;
void *data;
} ETableSimple;
@ -52,7 +50,6 @@ ETableModel *e_table_simple_new (ETableSimpleColumnCountFn col_count,
ETableSimpleFreeValueFn free_value,
ETableSimpleInitializeValueFn initialize_value,
ETableSimpleValueIsEmptyFn value_is_empty,
ETableSimpleThawFn thaw,
void *data);
#endif /* _E_TABLE_SIMPLE_H_ */

View File

@ -171,13 +171,6 @@ my_value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
/* This function is for when the model is unfrozen. This can mostly
be ignored for simple models. */
static void
my_thaw (ETableModel *etc, void *data)
{
}
/* We create a window containing our new table. */
static void
create_table (void)
@ -195,7 +188,7 @@ create_table (void)
my_set_value_at, my_is_cell_editable,
my_duplicate_value, my_free_value,
my_initialize_value, my_value_is_empty,
my_thaw, NULL);
NULL);
/*
* Next we create a header. The ETableHeader is used in two
* different way. The first is the full_header. This is the

View File

@ -159,8 +159,8 @@ etsv_add (ETableSubsetVariable *etssv,
}
etss->map_table[i] = row;
etss->n_map++;
if (!etm->frozen)
e_table_model_row_inserted (etm, i);
e_table_model_row_inserted (etm, i);
}
static void
@ -182,8 +182,8 @@ etsv_add_all (ETableSubsetVariable *etssv)
if (etsv->sort_idle_id == 0) {
etsv->sort_idle_id = g_idle_add_full(50, (GSourceFunc) etsv_sort_idle, etsv, NULL);
}
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
}
ETableModel *
@ -217,29 +217,25 @@ e_table_sorted_variable_new (ETableModel *source, ETableHeader *full_header, ETa
static void
etsv_proxy_model_changed (ETableModel *etm, ETableSortedVariable *etsv)
{
if (!E_TABLE_MODEL(etsv)->frozen){
/* FIXME: do_resort (); */
}
/* FIXME: do_resort (); */
}
static void
etsv_proxy_model_row_changed (ETableModel *etm, int row, ETableSortedVariable *etsv)
{
ETableSubsetVariable *etssv = E_TABLE_SUBSET_VARIABLE(etsv);
if (!E_TABLE_MODEL(etsv)->frozen){
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
static void
etsv_proxy_model_cell_changed (ETableModel *etm, int col, int row, ETableSortedVariable *etsv)
{
ETableSubsetVariable *etssv = E_TABLE_SUBSET_VARIABLE(etsv);
if (!E_TABLE_MODEL(etsv)->frozen){
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
if (e_table_subset_variable_remove(etssv, row))
e_table_subset_variable_add (etssv, row);
}
static void

View File

@ -39,8 +39,8 @@ etssv_add (ETableSubsetVariable *etssv,
if (etss->map_table[i] >= row)
etss->map_table[i] ++;
etss->map_table[etss->n_map++] = row;
if (!etm->frozen)
e_table_model_row_inserted (etm, etss->n_map - 1);
e_table_model_row_inserted (etm, etss->n_map - 1);
}
static void
@ -57,8 +57,8 @@ etssv_add_all (ETableSubsetVariable *etssv)
}
for (i = 0; i < rows; i++)
etss->map_table[etss->n_map++] = i;
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
}
static gboolean
@ -74,8 +74,8 @@ etssv_remove (ETableSubsetVariable *etssv,
if (etss->map_table[i] == row) {
memmove (etss->map_table + i, etss->map_table + i + 1, (etss->n_map - i - 1) * sizeof(int));
etss->n_map --;
if (!etm->frozen)
e_table_model_changed (etm);
e_table_model_changed (etm);
ret_val = TRUE;
break;
}

View File

@ -114,12 +114,6 @@ etss_value_is_empty (ETableModel *etm, int col, const void *value)
return e_table_model_value_is_empty (etss->source, col, value);
}
static void
etss_thaw (ETableModel *etm)
{
e_table_model_changed (etm);
}
static void
etss_class_init (GtkObjectClass *klass)
{
@ -138,7 +132,6 @@ etss_class_init (GtkObjectClass *klass)
table_class->free_value = etss_free_value;
table_class->initialize_value = etss_initialize_value;
table_class->value_is_empty = etss_value_is_empty;
table_class->thaw = etss_thaw;
}
E_MAKE_TYPE(e_table_subset, "ETableSubset", ETableSubset, etss_class_init, NULL, PARENT_TYPE);
@ -146,23 +139,20 @@ E_MAKE_TYPE(e_table_subset, "ETableSubset", ETableSubset, etss_class_init, NULL,
static void
etss_proxy_model_changed (ETableModel *etm, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen)
e_table_model_changed (E_TABLE_MODEL (etss));
e_table_model_changed (E_TABLE_MODEL (etss));
}
static void
etss_proxy_model_row_changed (ETableModel *etm, int row, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen){
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_row_changed (E_TABLE_MODEL (etss), i);
return;
}
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_row_changed (E_TABLE_MODEL (etss), i);
return;
}
}
}
@ -170,16 +160,14 @@ etss_proxy_model_row_changed (ETableModel *etm, int row, ETableSubset *etss)
static void
etss_proxy_model_cell_changed (ETableModel *etm, int col, int row, ETableSubset *etss)
{
if (!E_TABLE_MODEL(etss)->frozen){
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
const int n = etss->n_map;
const int * const map_table = etss->map_table;
int i;
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_cell_changed (E_TABLE_MODEL (etss), col, i);
return;
}
for (i = 0; i < n; i++){
if (map_table [i] == row){
e_table_model_cell_changed (E_TABLE_MODEL (etss), col, i);
return;
}
}
}

View File

@ -118,12 +118,6 @@ value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
static void
set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
{
@ -149,7 +143,7 @@ check_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header

View File

@ -124,12 +124,6 @@ set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
gnome_canvas_set_scroll_region (canvas, 0, 0, alloc->width, alloc->height);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
void
multi_cols_test (void)
{
@ -148,7 +142,7 @@ multi_cols_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header

View File

@ -202,12 +202,6 @@ value_is_empty (ETableModel *etc, int col, const void *value, void *data)
return !(value && *(char *)value);
}
static void
thaw (ETableModel *etc, void *data)
{
e_table_model_changed (etc);
}
static void
set_canvas_size (GnomeCanvas *canvas, GtkAllocation *alloc)
{
@ -234,7 +228,7 @@ table_browser_test (void)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
/*
* Header
@ -333,7 +327,7 @@ do_e_table_demo (const char *spec)
set_value_at, is_cell_editable,
duplicate_value, free_value,
initialize_value, value_is_empty,
thaw, NULL);
NULL);
full_header = e_table_header_new ();
cell_left_just = e_cell_text_new (e_table_model, NULL, GTK_JUSTIFY_LEFT);