Mercurial > geeqie
changeset 1276:4177057ca11b
editor_list_get() now returns a sorted list, this way items appear in the same order in all menus.
author | zas_ |
---|---|
date | Tue, 03 Feb 2009 08:41:21 +0000 |
parents | fa0e7b8e785e |
children | 93df70312ccd |
files | src/editors.c src/layout_util.c |
diffstat | 2 files changed, 14 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editors.c Mon Feb 02 20:32:59 2009 +0000 +++ b/src/editors.c Tue Feb 03 08:41:21 2009 +0000 @@ -372,10 +372,24 @@ *listp = g_list_prepend(*listp, editor); } +static gint editor_sort(gconstpointer a, gconstpointer b) +{ + const EditorDescription *ea = a; + const EditorDescription *eb = b; + int ret; + + ret = strcmp(ea->menu_path, eb->menu_path); + if (ret != 0) return ret; + + return g_utf8_collate(ea->name, eb->name); +} + GList *editor_list_get(void) { GList *editors_list = NULL; g_hash_table_foreach(editors, editor_list_add_cb, &editors_list); + editors_list = g_list_sort(editors_list, editor_sort); + return editors_list; }
--- a/src/layout_util.c Mon Feb 02 20:32:59 2009 +0000 +++ b/src/layout_util.c Tue Feb 03 08:41:21 2009 +0000 @@ -1512,18 +1512,6 @@ g_string_free(desc, TRUE); } -static gint layout_actions_editor_sort(gconstpointer a, gconstpointer b) -{ - const EditorDescription *ea = a; - const EditorDescription *eb = b; - int ret; - - ret = strcmp(ea->menu_path, eb->menu_path); - if (ret != 0) return ret; - - return g_utf8_collate(ea->name, eb->name); -} - static GList *layout_actions_editor_menu_path(EditorDescription *editor) { gchar **split = g_strsplit(editor->menu_path, "/", 0); @@ -1617,7 +1605,6 @@ " <menubar name='MainMenu'>"); editors_list = editor_list_get(); - editors_list = g_list_sort(editors_list, layout_actions_editor_sort); old_path = NULL; work = editors_list;