diff options
Diffstat (limited to 'widgets/e-table/e-table-config.c')
-rw-r--r-- | widgets/e-table/e-table-config.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/widgets/e-table/e-table-config.c b/widgets/e-table/e-table-config.c index c81eeecca0..d99bfea2f1 100644 --- a/widgets/e-table/e-table-config.c +++ b/widgets/e-table/e-table-config.c @@ -34,15 +34,14 @@ load_data (GladeXML *xml, char *label_widget, const char *content) } static char * -get_fields (ETable *etable) +get_fields (ETable *etable, xmlNode *xmlRoot) { - xmlNode *xmlRoot, *xmlColumns; + xmlNode *xmlColumns; xmlNode *column; GString *res; char *s; res = g_string_new (""); - xmlRoot = xmlDocGetRootElement (etable->specification); xmlColumns = e_xml_get_child_by_name (xmlRoot, "columns-shown"); for (column = xmlColumns->childs; column; column = column->next){ @@ -62,9 +61,19 @@ get_fields (ETable *etable) } static char * -get_grouping (ETable *etable) +get_grouping (ETable *etable, xmlNode *xmlRoot) { - return g_strdup ("None"); + xmlNode *xmlGrouping; + GString *res; + char *s; + + res = g_string_new (""); + xmlGrouping = e_xml_get_child_by_name (xmlRoot, "grouping"); + + s = res->str; + g_string_free (res, FALSE); + + return s; } static char * @@ -86,13 +95,16 @@ get_filter (ETable *etable) static void load_label_data (GladeXML *gui, ETable *etable) { + xmlNode *xmlRoot; char *s; - s = get_fields (etable); + xmlRoot = xmlDocGetRootElement (etable->specification); + + s = get_fields (etable, xmlRoot); load_data (gui, "label1", s); g_free (s); - s = get_grouping (etable); + s = get_grouping (etable, xmlRoot); load_data (gui, "label2", s); g_free (s); |