SF.net SVN: geany:[4908] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Fri May 14 14:46:20 UTC 2010


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.



More information about the Commits mailing list