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;