r3440 - in trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: . src

thomas at sita.openmoko.org thomas at sita.openmoko.org
Mon Nov 19 15:30:54 CET 2007


Author: thomas
Date: 2007-11-19 15:30:53 +0100 (Mon, 19 Nov 2007)
New Revision: 3440

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
Log:
* src/navigation-area.c: (model_filter_func),
(navigation_area_new): Enable fixed height rows in treeview to speed up
 filtering

* src/search-bar.c: (text_changed_cb): Fast path blank search


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-19 14:01:02 UTC (rev 3439)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-19 14:30:53 UTC (rev 3440)
@@ -1,3 +1,11 @@
+2007-11-19  Thomas Wood <thomas at openedhand.com>
+
+	* src/navigation-area.c: (model_filter_func),
+	(navigation_area_new): Enable fixed height rows in treeview to speed up
+	 filtering
+
+	* src/search-bar.c: (text_changed_cb): Fast path blank search
+
 2007-11-19  Thomas Wood  <thomas at openedhand.com>
 
 	* src/navigation-area.c: (model_filter_func):

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c	2007-11-19 14:01:02 UTC (rev 3439)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c	2007-11-19 14:30:53 UTC (rev 3440)
@@ -90,7 +90,11 @@
   }
   else if (data->searchbar_search_type == SEARCH_ON_NAME)
   {
-    return (g_strrstr (pkg->name, data->searchbar_needle));
+    /* fast path initial blank search */
+    if (g_str_equal ("", data->searchbar_needle))
+      return FALSE;
+
+    return (g_strrstr (pkg->name, data->searchbar_needle) != NULL);
   }
   else if (data->searchbar_search_type == SEARCH_ON_STATUS)
   {
@@ -123,9 +127,10 @@
   gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE);
 
   /* Add the status as the first column. */
+  /*
   col = gtk_tree_view_column_new ();
   gtk_tree_view_column_set_title (col, _("S"));
-
+  */
   /*
   renderer = gtk_cell_renderer_pixbuf_new ();
   gtk_tree_view_column_pack_start (col, renderer, FALSE);
@@ -142,7 +147,7 @@
 
   renderer = gtk_cell_renderer_text_new ();
   gtk_tree_view_column_pack_start (col, renderer, TRUE);
-  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
   gtk_tree_view_column_set_attributes (col, renderer, "text", COL_NAME, NULL);
   g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
 
@@ -162,6 +167,9 @@
   gtk_container_add (GTK_CONTAINER (scrollwindow), treeview);
   application_manager_data_set_tvpkglist (appdata, treeview);
 
+  /* set fixed height mode to speed up filtering */
+  gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+
   /* Connect signal to the treeview */
   g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
                     "changed", G_CALLBACK (on_selection_changed), appdata);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2007-11-19 14:01:02 UTC (rev 3439)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2007-11-19 14:30:53 UTC (rev 3440)
@@ -46,7 +46,6 @@
 
   g_debug ("Search = %s", needle);
 
-
   GTimer *timer = g_timer_new ();
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
   g_object_ref (G_OBJECT (filter));





More information about the commitlog mailing list