+ case MODEST_HEADER_VIEW_COLUMN_COMPACT_FLAG:
+ gtk_tree_model_get (tree_model, iter1, TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &val1,
+ TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN, &t1, -1);
+ gtk_tree_model_get (tree_model, iter2, TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN, &val2,
+ TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN, &t2, -1);
+
+ int flag_sort = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), MODEST_HEADER_VIEW_FLAG_SORT));
+ switch (flag_sort) {
+ case TNY_HEADER_FLAG_ATTACHMENTS:
+ cmp = (val1 & TNY_HEADER_FLAG_ATTACHMENTS) -
+ (val2 & TNY_HEADER_FLAG_ATTACHMENTS);
+ break;
+ case TNY_HEADER_FLAG_PRIORITY:
+ cmp = (val1 & TNY_HEADER_FLAG_PRIORITY) -
+ (val2 & TNY_HEADER_FLAG_PRIORITY);
+ break;
+ default:
+ cmp = (val1 & TNY_HEADER_FLAG_PRIORITY) -
+ (val2 & TNY_HEADER_FLAG_PRIORITY);
+ }
+
+ return cmp ? cmp : t1 - t2;