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

thomas at sita.openmoko.org thomas at sita.openmoko.org
Fri Nov 16 14:23:03 CET 2007


Author: thomas
Date: 2007-11-16 14:23:01 +0100 (Fri, 16 Nov 2007)
New Revision: 3431

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c
   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
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h
Log:
* src/appmanager-data.h:
* src/appmanager-window.c: (main):
* src/navigation-area.c: (model_filter_func):
* src/search-bar.c: (text_changed_cb), (combo_changed_cb),
(slist_insert), (search_bar_new):
* src/search-bar.h:

Implement Installed/Not Installed filtering


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-16 13:23:01 UTC (rev 3431)
@@ -1,3 +1,14 @@
+2007-11-16  Thomas Wood  <thomas at openedhand.com>
+
+	* src/appmanager-data.h:
+	* src/appmanager-window.c: (main):
+	* src/navigation-area.c: (model_filter_func):
+	* src/search-bar.c: (text_changed_cb), (combo_changed_cb),
+	(slist_insert), (search_bar_new):
+	* src/search-bar.h:
+
+	Implement Installed/Not Installed filtering
+
 2007-11-14  Thomas Wood  <thomas at openedhand.com>
 
 	* src/search-bar.c: (text_changed_cb): Remove the model from the

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h	2007-11-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h	2007-11-16 13:23:01 UTC (rev 3431)
@@ -76,7 +76,7 @@
   
   GtkWidget        *searchbar;
   /* these are used to optimise the filter function */
-  gboolean          searchbar_name_search;
+  gint              searchbar_search_type;
   const gchar      *searchbar_needle;
 } ApplicationManagerData;
 
@@ -87,6 +87,12 @@
   GObjectClass    parent_class;        /* The parent class */
 } ApplicationManagerDataClass;
 
+enum {
+  SEARCH_ON_SECTION,
+  SEARCH_ON_STATUS,
+  SEARCH_ON_NAME
+};
+
 GType application_manager_data_get_type (void);
 
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c	2007-11-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c	2007-11-16 13:23:01 UTC (rev 3431)
@@ -73,6 +73,7 @@
   pkg_list = package_store_new ();
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_widget_set_size_request (window, 400, 600);
   g_signal_connect (G_OBJECT (window), "delete_event",
                     G_CALLBACK (gtk_main_quit), NULL);
   application_manager_data_set_main_window (appdata, GTK_WINDOW (window));

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-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c	2007-11-16 13:23:01 UTC (rev 3431)
@@ -84,16 +84,21 @@
     return FALSE;
 
  
-  if (data->searchbar_name_search)
+  if (data->searchbar_search_type == SEARCH_ON_SECTION)
   {
     return (strstr (pkg->name, data->searchbar_needle) != NULL);
   }
-  else
+  else if (data->searchbar_search_type == SEARCH_ON_NAME)
   {
     return (!strcmp (pkg->section, data->searchbar_needle));
   }
-  
+  else if (data->searchbar_search_type == SEARCH_ON_STATUS)
+  {
+    return (pkg->state_status == GPOINTER_TO_INT (data->searchbar_needle));
+  }
 
+  return FALSE;
+
 }
 
 /*

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-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2007-11-16 13:23:01 UTC (rev 3431)
@@ -41,7 +41,7 @@
   entry = moko_search_bar_get_entry (MOKO_SEARCH_BAR (data->searchbar));
   needle = gtk_entry_get_text (entry);
  
-  data->searchbar_name_search = TRUE;
+  data->searchbar_search_type = SEARCH_ON_NAME;
   data->searchbar_needle = needle;
 
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
@@ -59,20 +59,37 @@
   const gchar *needle;
   GtkTreeIter cb_iter;
   GtkTreeModel *cb_model;
+  gint active;
 
   if (!combo)
     combo = moko_search_bar_get_combo_box (MOKO_SEARCH_BAR (data->searchbar));
 
-  if (!gtk_combo_box_get_active_iter (combo, &cb_iter))
+  active = gtk_combo_box_get_active (combo);
+    
+  if (active < 0)
     return;
-
-  cb_model = gtk_combo_box_get_model (combo);
-  gtk_tree_model_get (cb_model, &cb_iter, 0, &needle, -1);
   
-  data->searchbar_name_search = FALSE;
-  data->searchbar_needle = needle;
+  if (active <= 1)
+  {
+    data->searchbar_search_type = SEARCH_ON_STATUS;
+    if (active == FILTER_INSTALLED)
+      data->searchbar_needle = GINT_TO_POINTER (SS_INSTALLED);
+    else
+      data->searchbar_needle = GINT_TO_POINTER (SS_NOT_INSTALLED);
+  }
+  else
+  {
+    
+    if (!gtk_combo_box_get_active_iter (combo, &cb_iter))
+      return;
 
-  
+    cb_model = gtk_combo_box_get_model (combo);
+    gtk_tree_model_get (cb_model, &cb_iter, 0, &needle, -1);
+    
+    data->searchbar_search_type = SEARCH_ON_SECTION;
+    data->searchbar_needle = needle;
+  }
+
   filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
   gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter));
 }
@@ -144,7 +161,7 @@
   appdata->filter_store = GTK_TREE_MODEL (filter);
 
   gtk_list_store_insert_with_values (filter, NULL, FILTER_INSTALLED, 0, "Installed", -1);
-  gtk_list_store_insert_with_values (filter, NULL, FILTER_UPGRADEABLE, 0, "Upgradeable", -1);
+  gtk_list_store_insert_with_values (filter, NULL, FILTER_NOT_INSTALLED, 0, "Not Installed", -1);
   gtk_list_store_insert_with_values (filter, NULL, 3, 0, NULL, -1);
 
   /* profile these two methods to see which is quicker */

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h	2007-11-16 08:55:01 UTC (rev 3430)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h	2007-11-16 13:23:01 UTC (rev 3431)
@@ -25,7 +25,7 @@
 typedef enum
 {
   FILTER_INSTALLED,
-  FILTER_UPGRADEABLE,
+  FILTER_NOT_INSTALLED,
   FILTER_SELECTED
 } SearchBarFilter;
 





More information about the commitlog mailing list