Revision: 2577 http://geany.svn.sourceforge.net/geany/?rev=2577&view=rev Author: ntrel Date: 2008-05-14 04:31:07 -0700 (Wed, 14 May 2008)
Log Message: ----------- Sort custom template file menu items by filetype, with None filetypes first.
Modified Paths: -------------- trunk/ChangeLog trunk/src/templates.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-05-13 17:30:28 UTC (rev 2576) +++ trunk/ChangeLog 2008-05-14 11:31:07 UTC (rev 2577) @@ -1,3 +1,10 @@ +2008-05-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + + * src/templates.c: + Sort custom template file menu items by filetype, with None + filetypes first. + + 2008-05-13 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/templates.c, src/utils.c, src/ui_utils.h, src/ui_utils.c,
Modified: trunk/src/templates.c =================================================================== --- trunk/src/templates.c 2008-05-13 17:30:28 UTC (rev 2576) +++ trunk/src/templates.c 2008-05-14 11:31:07 UTC (rev 2577) @@ -430,6 +430,26 @@ }
+static gint compare_filenames_by_filetype(gconstpointer a, gconstpointer b) +{ + filetype *ft_a = filetypes_detect_from_extension(a); + filetype *ft_b = filetypes_detect_from_extension(b); + + /* sort by filetype name first */ + if (ft_a != ft_b) + { + /* None filetypes should come first */ + if (ft_a->id == GEANY_FILETYPES_NONE) + return -1; + if (ft_b->id == GEANY_FILETYPES_NONE) + return 1; + + return g_strcasecmp(ft_a->name, ft_b->name); + } + return g_strcasecmp(a, b); +} + + static gboolean add_custom_template_items(void) { gchar *path = g_build_path(G_DIR_SEPARATOR_S, app->configdir, GEANY_TEMPLATES_SUBDIR, @@ -441,6 +461,7 @@ utils_mkdir(path, FALSE); return FALSE; } + list = g_slist_sort(list, compare_filenames_by_filetype); g_slist_foreach(list, add_file_item, NULL); g_slist_foreach(list, (GFunc) g_free, NULL); g_slist_free(list);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.