aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-table-sorted-variable.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-06-18 21:25:40 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-06-19 08:31:50 +0800
commitc6ccd45a0ef07b12a0313deb3abee032d89eec0a (patch)
tree41f67ea66ada4bf9a1b109236194386dc1292f7e /e-util/e-table-sorted-variable.c
parent96acf4fa41260e7917ae1a794bb4b636e6c398cc (diff)
downloadgsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar.gz
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar.bz2
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar.lz
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar.xz
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.tar.zst
gsoc2013-evolution-c6ccd45a0ef07b12a0313deb3abee032d89eec0a.zip
ETable-related cleanups.
Diffstat (limited to 'e-util/e-table-sorted-variable.c')
-rw-r--r--e-util/e-table-sorted-variable.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/e-util/e-table-sorted-variable.c b/e-util/e-table-sorted-variable.c
index 17c10d5328..e01f940b2c 100644
--- a/e-util/e-table-sorted-variable.c
+++ b/e-util/e-table-sorted-variable.c
@@ -37,9 +37,10 @@
/* maximum insertions between an idle event that we will do without scheduling an idle sort */
#define ETSV_INSERT_MAX (4)
-/* workaround for avoiding API breakage */
-#define etsv_get_type e_table_sorted_variable_get_type
-G_DEFINE_TYPE (ETableSortedVariable, etsv, E_TYPE_TABLE_SUBSET_VARIABLE)
+G_DEFINE_TYPE (
+ ETableSortedVariable,
+ e_table_sorted_variable,
+ E_TYPE_TABLE_SUBSET_VARIABLE)
static void etsv_sort_info_changed (ETableSortInfo *info, ETableSortedVariable *etsv);
static void etsv_sort (ETableSortedVariable *etsv);
@@ -74,11 +75,11 @@ etsv_dispose (GObject *object)
g_object_unref (etsv->full_header);
etsv->full_header = NULL;
- G_OBJECT_CLASS (etsv_parent_class)->dispose (object);
+ G_OBJECT_CLASS (e_table_sorted_variable_parent_class)->dispose (object);
}
static void
-etsv_class_init (ETableSortedVariableClass *class)
+e_table_sorted_variable_class_init (ETableSortedVariableClass *class)
{
ETableSubsetVariableClass *etssv_class = E_TABLE_SUBSET_VARIABLE_CLASS (class);
GObjectClass *object_class = G_OBJECT_CLASS (class);
@@ -90,7 +91,7 @@ etsv_class_init (ETableSortedVariableClass *class)
}
static void
-etsv_init (ETableSortedVariable *etsv)
+e_table_sorted_variable_init (ETableSortedVariable *etsv)
{
etsv->full_header = NULL;
etsv->sort_info = NULL;
@@ -127,8 +128,11 @@ etsv_add (ETableSubsetVariable *etssv,
ETableModel *etm = E_TABLE_MODEL (etssv);
ETableSubset *etss = E_TABLE_SUBSET (etssv);
ETableSortedVariable *etsv = E_TABLE_SORTED_VARIABLE (etssv);
+ ETableModel *source_model;
gint i;
+ source_model = e_table_subset_get_source_model (etss);
+
e_table_model_pre_change (etm);
if (etss->n_map + 1 > etssv->n_vals_allocated) {
@@ -148,7 +152,7 @@ etsv_add (ETableSubsetVariable *etssv,
if (etsv->insert_idle_id == 0) {
etsv->insert_idle_id = g_idle_add_full (40, (GSourceFunc) etsv_insert_idle, etsv, NULL);
}
- i = e_table_sorting_utils_insert (etss->source, etsv->sort_info, etsv->full_header, etss->map_table, etss->n_map, row);
+ i = e_table_sorting_utils_insert (source_model, etsv->sort_info, etsv->full_header, etss->map_table, etss->n_map, row);
memmove (etss->map_table + i + 1, etss->map_table + i, (etss->n_map - i) * sizeof (gint));
}
}
@@ -164,12 +168,14 @@ etsv_add_all (ETableSubsetVariable *etssv)
ETableModel *etm = E_TABLE_MODEL (etssv);
ETableSubset *etss = E_TABLE_SUBSET (etssv);
ETableSortedVariable *etsv = E_TABLE_SORTED_VARIABLE (etssv);
+ ETableModel *source_model;
gint rows;
gint i;
e_table_model_pre_change (etm);
- rows = e_table_model_row_count (etss->source);
+ source_model = e_table_subset_get_source_model (etss);
+ rows = e_table_model_row_count (source_model);
if (etss->n_map + rows > etssv->n_vals_allocated) {
etssv->n_vals_allocated += MAX (INCREMENT_AMOUNT, rows);
@@ -221,14 +227,17 @@ static void
etsv_sort (ETableSortedVariable *etsv)
{
ETableSubset *etss = E_TABLE_SUBSET (etsv);
+ ETableModel *source_model;
static gint reentering = 0;
+
if (reentering)
return;
reentering = 1;
e_table_model_pre_change (E_TABLE_MODEL (etsv));
- e_table_sorting_utils_sort (etss->source, etsv->sort_info, etsv->full_header, etss->map_table, etss->n_map);
+ source_model = e_table_subset_get_source_model (etss);
+ e_table_sorting_utils_sort (source_model, etsv->sort_info, etsv->full_header, etss->map_table, etss->n_map);
e_table_model_changed (E_TABLE_MODEL (etsv));
reentering = 0;