[Goodies-commits] r1802 - in verve-plugin/trunk: . panel-plugin

Jannis Pohlmann jannis at xfce.org
Thu Jul 27 02:26:10 CEST 2006


Author: jannis
Date: 2006-07-27 00:26:07 +0000 (Thu, 27 Jul 2006)
New Revision: 1802

Modified:
   verve-plugin/trunk/ChangeLog
   verve-plugin/trunk/panel-plugin/verve-env.c
   verve-plugin/trunk/panel-plugin/verve-plugin.c
Log:
	* panel-plugin/verve-plugin.c, panel-plugin/verve-env.c: Properly sort
	  items of the completion list and also insert new items using
	  g_list_insert_sorted. This fixes bug #2074 (reported by Nick Arend).

Modified: verve-plugin/trunk/ChangeLog
===================================================================
--- verve-plugin/trunk/ChangeLog	2006-07-26 16:34:13 UTC (rev 1801)
+++ verve-plugin/trunk/ChangeLog	2006-07-27 00:26:07 UTC (rev 1802)
@@ -1,5 +1,11 @@
 2006-07-26	Jannis Pohlmann <jannis at xfce.org>
 
+	* panel-plugin/verve-plugin.c, panel-plugin/verve-env.c: Properly sort
+	  items of the completion list and also insert new items using
+	  g_list_insert_sorted. This fixes bug #2074 (reported by Nick Arend).
+
+2006-07-26	Jannis Pohlmann <jannis at xfce.org>
+
 	* configure.in.in, panel-plugin/verve-dbus-service.c: Add switch to
 	  use different D-BUS flags when requesting a service name depending
 	  on the available D-BUS version (the flags changed with 0.60).

Modified: verve-plugin/trunk/panel-plugin/verve-env.c
===================================================================
--- verve-plugin/trunk/panel-plugin/verve-env.c	2006-07-26 16:34:13 UTC (rev 1801)
+++ verve-plugin/trunk/panel-plugin/verve-env.c	2006-07-27 00:26:07 UTC (rev 1802)
@@ -284,6 +284,9 @@
     g_dir_close (dir);
   }
 
+  /* Sort binaries */
+  env->binaries = g_list_sort (env->binaries, (GCompareFunc) g_utf8_collate);
+
   /* Emit 'load-binaries' signal */
   g_signal_emit_by_name (env, "load-binaries");
 

Modified: verve-plugin/trunk/panel-plugin/verve-plugin.c
===================================================================
--- verve-plugin/trunk/panel-plugin/verve-plugin.c	2006-07-26 16:34:13 UTC (rev 1801)
+++ verve-plugin/trunk/panel-plugin/verve-plugin.c	2006-07-27 00:26:07 UTC (rev 1802)
@@ -92,18 +92,28 @@
   /* Load linux binaries from PATH */
   GList *binaries = verve_env_get_path_binaries (env);
 
+  /* Merged (and sorted) list */
+  GList *items = NULL;
+
+  /* Iterator */
+  GList *iter = NULL;
+
   G_LOCK (plugin_completion_mutex);
 
+  /* Build merged list */
+  items = g_list_concat (NULL, binaries);
+  for (iter = g_list_first (history); iter != NULL; iter = g_list_next (iter))
+    items = g_list_insert_sorted (items, iter->data, (GCompareFunc) g_utf8_collate);
+
   verve->completion = g_completion_new (NULL);
 
-  /* Add command history to completion */
+  /* Add merged items to completion */
   if (G_LIKELY (history != NULL)) 
-    g_completion_add_items (verve->completion, history);
+    g_completion_add_items (verve->completion, items);
+
+  /* Free merged list */
+  g_list_free (items);
   
-  /* Add binaries to completion list */
-  if (G_LIKELY (binaries != NULL))
-    g_completion_add_items (verve->completion, binaries);
-
   G_UNLOCK (plugin_completion_mutex);
 }
 
@@ -374,7 +384,7 @@
                 verve_history_add (g_strdup (command));
 
                 /* Add command to completion */
-                verve->completion->items = g_list_prepend (verve->completion->items, g_strdup (command));
+                verve->completion->items = g_list_insert_sorted (verve->completion->items, g_strdup (command), (GCompareFunc) g_utf8_collate);
               }
       
             /* Reset current history entry */




More information about the Goodies-commits mailing list