diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-08-27 06:57:53 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-08-27 06:57:53 +0000 |
commit | beb57e259bef95cead6fe7ff0dceaceae2e754ab (patch) | |
tree | d20f41c943cbeb51fd849505766f069ff2541de8 /gtk/gui_utils.c | |
parent | 0267ffb01c08da9fb9bb524e1279cc09465b5111 (diff) |
make the columns sortable.
svn path=/trunk/; revision=29583
Diffstat (limited to 'gtk/gui_utils.c')
-rw-r--r-- | gtk/gui_utils.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gtk/gui_utils.c b/gtk/gui_utils.c index 29a8c40a31..2a34a504d7 100644 --- a/gtk/gui_utils.c +++ b/gtk/gui_utils.c @@ -1221,3 +1221,28 @@ str_ptr_data_func (GtkTreeViewColumn *column _U_, g_object_set(renderer, "text", str, NULL); } +gint +str_ptr_sort_func(GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer user_data) +{ + const gchar *str_a = NULL; + const gchar *str_b = NULL; + gint ret = 0; + + /* The col to get data from is in userdata */ + gint data_column = GPOINTER_TO_INT(user_data); + + gtk_tree_model_get(model, a, data_column, &str_a, -1); + gtk_tree_model_get(model, b, data_column, &str_b, -1); + + if (str_a == NULL || str_b == NULL){ + if (str_a == NULL && str_b == NULL) + return 0; + ret = (str_a == NULL) ? -1 : 1; + }else{ + ret = g_ascii_strcasecmp(str_a,str_b); + } + return ret; +} |