* Fix sort by priority, as it wasn't comparing the
fields values properly.
* src/maemo/modest-platform.c:
* Fix recovering the sort status from header view to
create the sort dialog.
* Save the new widget status on finishing the sort
(fixes NB#58628).
* src/modest-widget-memory.c:
* Fix the recovering of sort status from header view.
pmo-trunk-r2341
GtkSortType current_sort_type;
gint attachments_sort_id;
gint priority_sort_id;
GtkSortType current_sort_type;
gint attachments_sort_id;
gint priority_sort_id;
+ GtkTreeSortable *sortable;
/* Get header window */
if (MODEST_IS_MAIN_WINDOW (parent_window)) {
/* Get header window */
if (MODEST_IS_MAIN_WINDOW (parent_window)) {
if (!header_view) return;
/* Add sorting keys */
if (!header_view) return;
/* Add sorting keys */
- cols = modest_header_view_get_columns (header_view);
+ cols = modest_header_view_get_columns (header_view);
if (cols == NULL) return;
int sort_model_ids[6];
int sort_ids[6];
if (cols == NULL) return;
int sort_model_ids[6];
int sort_ids[6];
sort_ids[sort_key] = TNY_HEADER_FLAG_PRIORITY;
priority_sort_id = sort_key;
sort_ids[sort_key] = TNY_HEADER_FLAG_PRIORITY;
priority_sort_id = sort_key;
+ sortable = GTK_TREE_SORTABLE (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model (GTK_TREE_VIEW (header_view)))));
- if (!gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (gtk_tree_view_get_model (GTK_TREE_VIEW (header_view))),
+ if (!gtk_tree_sortable_get_sort_column_id (sortable,
¤t_sort_colid, ¤t_sort_type)) {
hildon_sort_dialog_set_sort_key (dialog, default_key);
hildon_sort_dialog_set_sort_order (dialog, GTK_SORT_DESCENDING);
¤t_sort_colid, ¤t_sort_type)) {
hildon_sort_dialog_set_sort_key (dialog, default_key);
hildon_sort_dialog_set_sort_order (dialog, GTK_SORT_DESCENDING);
}
modest_header_view_sort_by_column_id (header_view, sort_model_ids[sort_key], sort_type);
}
modest_header_view_sort_by_column_id (header_view, sort_model_ids[sort_key], sort_type);
- gtk_tree_sortable_sort_column_changed (GTK_TREE_SORTABLE (gtk_tree_view_get_model (GTK_TREE_VIEW (header_view))));
+ gtk_tree_sortable_sort_column_changed (sortable);
+
+ modest_widget_memory_save (modest_runtime_get_conf (),
+ G_OBJECT (header_view), MODEST_CONF_HEADER_VIEW_KEY);
/* free */
g_list_free(cols);
/* free */
g_list_free(cols);
- GtkTreeModel *sortable = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+ GtkTreeModel *sortable =
+ gtk_tree_model_filter_get_model (
+ GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model (GTK_TREE_VIEW (header_view))));
if (sort_colid == TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN)
modest_header_view_sort_by_column_id (header_view, 0, sort_type);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(sortable),
if (sort_colid == TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN)
modest_header_view_sort_by_column_id (header_view, 0, sort_type);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(sortable),
on_selection_changed (selection, user_data);
}
on_selection_changed (selection, user_data);
}
+static gint compare_priorities (TnyHeaderFlags p1, TnyHeaderFlags p2)
+{
+ p1 = p1 & TNY_HEADER_FLAG_PRIORITY;
+ p2 = p2 & TNY_HEADER_FLAG_PRIORITY;
+ if (p1 == 0)
+ p1 = TNY_HEADER_FLAG_LOW_PRIORITY + 1;
+ if (p2 == 0)
+ p2 = TNY_HEADER_FLAG_LOW_PRIORITY + 1;
+ return p1 - p2;
+}
static gint
cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
static gint
cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
/* This is for making priority values respect the intuitive sort relationship
* as HIGH is 11, LOW is 01, and we put NORMAL AS 10 (2) */
/* This is for making priority values respect the intuitive sort relationship
* as HIGH is 11, LOW is 01, and we put NORMAL AS 10 (2) */
- if (val1 == 0) val1 = 2;
- if (val2 == 0) val2 = 2;
-
- cmp = (val1 & TNY_HEADER_FLAG_PRIORITY) - (val2 & TNY_HEADER_FLAG_PRIORITY);
+ cmp = compare_priorities (val1, val2);
return cmp ? cmp : t1 - t2;
return cmp ? cmp : t1 - t2;