+ type = modest_tny_folder_guess_folder_type (folder);
+ style = modest_header_view_get_style (header_view);
+
+ key = _modest_widget_memory_get_keyname_with_double_type (name, type, style,
+ MODEST_WIDGET_MEMORY_PARAM_COLUMN_WIDTH);
+ if (modest_conf_key_exists (conf, key, NULL)) {
+
+ gchar *data, *cursor;
+ GList *cols = NULL;
+ GList *colwidths = NULL;
+ GList *colsortables = NULL;
+ GtkTreeModel *sortable;
+
+ cursor = data = modest_conf_get_string (conf, key, NULL);
+ while (cursor && sscanf (cursor, "%d:%d:%d ", &col, &width, &sort) == 3) {
+ cols = g_list_append (cols, GINT_TO_POINTER(col));
+ colwidths = g_list_append (colwidths, GINT_TO_POINTER(width));
+ colsortables = g_list_append (colsortables, GINT_TO_POINTER(sort));
+ cursor = strchr (cursor + 1, ' ');
+ }
+ g_free (data);
+
+ if (cols) {
+ GList *viewcolumns, *colcursor, *widthcursor, *sortablecursor;
+ modest_header_view_set_columns (header_view, cols, type);
+ sortable = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+
+ widthcursor = colwidths;
+ sortablecursor = colsortables;
+ colcursor = viewcolumns = gtk_tree_view_get_columns (GTK_TREE_VIEW(header_view));
+ while (colcursor && widthcursor && sortablecursor) {
+ int width = GPOINTER_TO_INT(widthcursor->data);
+ int sort = GPOINTER_TO_INT(sortablecursor->data);
+ if (width > 0)
+ gtk_tree_view_column_set_max_width(GTK_TREE_VIEW_COLUMN(colcursor->data),
+ width);
+ if (sort != 0) {
+ int colid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(colcursor->data), MODEST_HEADER_VIEW_COLUMN));
+ GtkSortType sort_type = (sort == 1) ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;
+ modest_header_view_set_sort_params (header_view, colid, sort_type, type);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(sortable),
+ colid,
+ sort_type);
+ gtk_tree_sortable_sort_column_changed (GTK_TREE_SORTABLE(sortable));
+ }
+ colcursor = g_list_next (colcursor);
+ widthcursor = g_list_next (widthcursor);
+ sortablecursor = g_list_next (sortablecursor);
+ }
+
+ g_list_free (cols);
+ g_list_free (colwidths);
+ g_list_free (colsortables);
+ g_list_free (viewcolumns);
+ }
+ }
+
+ g_free (key);
+ g_object_unref (G_OBJECT (folder));
+