Revision: 4908 http://geany.svn.sourceforge.net/geany/?rev=4908&view=rev Author: eht16 Date: 2010-05-14 14:46:20 +0000 (Fri, 14 May 2010)
Log Message: ----------- Improve sorting of document list items (patch by Colomban Wendling, thanks).
Modified Paths: -------------- trunk/ChangeLog trunk/src/sidebar.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-05-14 14:22:02 UTC (rev 4907) +++ trunk/ChangeLog 2010-05-14 14:46:20 UTC (rev 4908) @@ -11,6 +11,9 @@ * src/highlighting.c: Set common default "fold.comment" to 0 to disable it. This can be overridden if desired. + * src/sidebar.c: + Improve sorting of document list items + (patch by Colomban Wendling, thanks).
2010-05-11 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/sidebar.c =================================================================== --- trunk/src/sidebar.c 2010-05-14 14:22:02 UTC (rev 4907) +++ trunk/src/sidebar.c 2010-05-14 14:46:20 UTC (rev 4908) @@ -235,6 +235,28 @@ }
+/* cleverly sorts documents by their short name */ +static gint documents_sort_func(GtkTreeModel *model, GtkTreeIter *iter_a, + GtkTreeIter *iter_b, gpointer data) +{ + gchar *key_a, *key_b; + gchar *name_a, *name_b; + gint cmp; + + gtk_tree_model_get(model, iter_a, DOCUMENTS_SHORTNAME, &name_a, -1); + key_a = g_utf8_collate_key_for_filename(name_a, -1); + g_free(name_a); + gtk_tree_model_get(model, iter_b, DOCUMENTS_SHORTNAME, &name_b, -1); + key_b = g_utf8_collate_key_for_filename(name_b, -1); + g_free(name_b); + cmp = strcmp(key_a, key_b); + g_free(key_b); + g_free(key_a); + + return cmp; +} + + /* does some preparing things to the open files list widget */ static void prepare_openfiles(void) { @@ -275,6 +297,7 @@
/* sort opened filenames in the store_openfiles treeview */ sortable = GTK_TREE_SORTABLE(GTK_TREE_MODEL(store_openfiles)); + gtk_tree_sortable_set_sort_func(sortable, DOCUMENTS_SHORTNAME, documents_sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id(sortable, DOCUMENTS_SHORTNAME, GTK_SORT_ASCENDING);
ui_widget_modify_font_from_string(tv.tree_openfiles, interface_prefs.tagbar_font);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.