{
gint i;
static const gchar* prefix[] = {
- "Re:", "RE:", "Fwd:", "FWD:", "FW:", NULL
+ "Re:", "RE:", "RV:", "re:"
+ "Fwd:", "FWD:", "FW:", "fwd:", "Fw:", "fw:", NULL
};
- if (!sub || (sub[0] != 'R' && sub[0] != 'F')) /* optimization */
+ if (!sub || (sub[0] != 'R' && sub[0] != 'F' && sub[0] != 'r' && sub[0] != 'f')) /* optimization */
return 0;
i = 0;
GtkTreeIter *iter2,
gpointer user_data);
+static gint cmp_subject_rows (GtkTreeModel *tree_model,
+ GtkTreeIter *iter1,
+ GtkTreeIter *iter2,
+ gpointer user_data);
+
static void on_selection_changed (GtkTreeSelection *sel,
gpointer user_data);
TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN,
(GtkTreeIterCompareFunc) cmp_rows,
compact_column, NULL);
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable),
+ TNY_GTK_HEADER_LIST_MODEL_SUBJECT_COLUMN,
+ (GtkTreeIterCompareFunc) cmp_subject_rows,
+ compact_column, NULL);
}
TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN,
(GtkTreeIterCompareFunc) cmp_rows,
cols->data, NULL);
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE(sortable),
+ TNY_GTK_HEADER_LIST_MODEL_SUBJECT_COLUMN,
+ (GtkTreeIterCompareFunc) cmp_subject_rows,
+ cols->data, NULL);
}
/* Set new model */
}
}
+static gint
+cmp_subject_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
+ gpointer user_data)
+{
+ gint t1, t2;
+ gchar *val1, *val2;
+ gint cmp;
+/* static int counter = 0; */
+
+ g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(user_data), 0);
+
+ gtk_tree_model_get (tree_model, iter1, TNY_GTK_HEADER_LIST_MODEL_SUBJECT_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_SUBJECT_COLUMN, &val2,
+ TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN, &t2, -1);
+
+ cmp = modest_text_utils_utf8_strcmp (val1 + modest_text_utils_get_subject_prefix_len(val1),
+ val2 + modest_text_utils_get_subject_prefix_len(val2),
+ TRUE);
+ g_free (val1);
+ g_free (val2);
+ return cmp;
+}
+
/* Drag and drop stuff */
static void
drag_data_get_cb (GtkWidget *widget, GdkDragContext *context,