--- Begin Message ---
Author: thomas
Date: 2007-11-07 18:32:38 +0100 (Wed, 07 Nov 2007)
New Revision: 3373
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/navigation-area.c
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
Log:
* src/appmanager-data.h:
* src/navigation-area.c: (on_selection_changed),
(navigation_area_new):
* src/search-bar.c: (search_bar_new):
Add package name text search support
Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
2007-11-07 17:14:21 UTC (rev 3372)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
2007-11-07 17:32:38 UTC (rev 3373)
@@ -1,5 +1,14 @@
2007-11-07 Thomas Wood <[EMAIL PROTECTED]>
+ * src/appmanager-data.h:
+ * src/navigation-area.c: (on_selection_changed),
+ (navigation_area_new):
+ * src/search-bar.c: (search_bar_new):
+
+ Add package name text search support
+
+2007-11-07 Thomas Wood <[EMAIL PROTECTED]>
+
* src/am-progress-dialog.h:
* src/ipkg-utils.c:
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-07 17:14:21 UTC (rev 3372)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
2007-11-07 17:32:38 UTC (rev 3373)
@@ -74,6 +74,8 @@
GtkToolItem *install_btn; /* Install toolbar button */
GtkToolItem *remove_btn; /* Remove toolbar button */
+
+ GtkWidget *searchbar;
} ApplicationManagerData;
/*
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-07 17:14:21 UTC (rev 3372)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
2007-11-07 17:32:38 UTC (rev 3373)
@@ -19,6 +19,7 @@
*/
#include <string.h>
#include <moko-finger-scroll.h>
+#include <moko-search-bar.h>
#include "appmanager-window.h"
#include "navigation-area.h"
@@ -65,68 +66,6 @@
}
}
-/*
- * @brief The callback function of the signal "button_press_event"
- */
-gboolean
-on_treeview_button_press_event (GtkWidget *treeview,
- GdkEventButton *event,
- gpointer data)
-{
- g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (data), FALSE);
-
- if (event->type == GDK_BUTTON_PRESS)
- {
- GtkTreeSelection *selection;
- GtkTreeIter iter;
- GtkTreePath *path;
- GtkTreeModel *model;
- GtkTreeViewColumn *column;
- GtkTreeViewColumn *firstcol;
- gpointer pkg;
-
- GtkMenu *selectmenu;
-
- if (!(event->window == gtk_tree_view_get_bin_window (GTK_TREE_VIEW
(treeview))))
- {
- g_debug ("Not a package list view event");
- return FALSE;
- }
-
- if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (treeview),
- (int)event->x, (int)event->y,
- &path, &column, NULL, NULL))
- {
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
- firstcol = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), 0);
- gtk_tree_selection_unselect_all (selection);
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (treeview), path, NULL,
FALSE);
-
- if (!((event->button == 1) && (strcmp(firstcol->title,
column->title) == 0)))
- {
- return TRUE;
- }
-
- if (gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- gtk_tree_model_get (model, &iter, COL_POINTER, &pkg, -1);
- selectmenu = application_manager_get_select_menu (
- MOKO_APPLICATION_MANAGER_DATA (data));
- g_return_val_if_fail (MOKO_IS_SELECT_MENU (selectmenu), TRUE);
- g_debug ("popup menu");
- moko_select_menu_popup (MOKO_SELECT_MENU (selectmenu),
- event,
- MOKO_APPLICATION_MANAGER_DATA (data),
- pkg);
- }
- return TRUE;
- }
-
- }
-
- return FALSE;
-}
-
static GtkListStore *
create_package_list_store (void)
{
@@ -141,6 +80,34 @@
/*
+ * model_filter_func
+ */
+
+gboolean
+model_filter_func (GtkTreeModel *model, GtkTreeIter *iter,
ApplicationManagerData *appdata)
+{
+ gboolean result = TRUE;
+
+ if (moko_search_bar_search_visible (MOKO_SEARCH_BAR (appdata->searchbar)))
+ {
+ gchar *haystack;
+ const gchar *needle;
+ GtkEntry *entry;
+
+ gtk_tree_model_get (model, iter, COL_NAME, &haystack, -1);
+
+ entry = moko_search_bar_get_entry (MOKO_SEARCH_BAR (appdata->searchbar));
+ needle = gtk_entry_get_text (entry);
+
+ result = (strstr (haystack, needle) != NULL);
+
+ g_free (haystack);
+ return result;
+ }
+ return result;
+}
+
+/*
* @brief Create all widgets in the navigation area for the application
manager data.
*
* @param appdata The application manager data
@@ -152,7 +119,7 @@
GtkWidget *scrollwindow;
GtkWidget *treeview;
- GtkTreeModel *model;
+ GtkTreeModel *model, *filter;
GtkTreeViewColumn *col;
GtkCellRenderer *renderer;
@@ -185,23 +152,15 @@
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), col);
-#if 0
- /* Add the size as the third column. */
- col = gtk_tree_view_column_new ();
- gtk_tree_view_column_set_title (col, _("Size"));
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (col, renderer, FALSE);
- gtk_tree_view_column_set_attributes (col, renderer,
- "text", COL_SIZE,
- NULL);
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), col);
-#endif
-
model = GTK_TREE_MODEL (create_package_list_store ());
- gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), model);
+
+ filter = gtk_tree_model_filter_new (model, NULL);
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter),
+ (GtkTreeModelFilterVisibleFunc)
model_filter_func, appdata, NULL);
g_object_unref (model);
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), filter);
+ g_object_unref (filter);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW
(treeview)),
GTK_SELECTION_BROWSE);
@@ -214,87 +173,10 @@
g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
"changed", G_CALLBACK (on_selection_changed), appdata);
- g_signal_connect ((gpointer) treeview, "button_press_event",
- G_CALLBACK (on_treeview_button_press_event),
- appdata);
-
return scrollwindow;
}
/*
- * @brief Insert test data
- */
-gint
-navigation_area_insert_test_data (ApplicationManagerData *appdata)
-{
- GtkWidget *treeview;
-
- GtkTreeModel *model;
- GtkListStore *store;
- GtkTreeIter iter;
- GdkPixbuf *pix = NULL;
-
- treeview = application_manager_get_tvpkglist (appdata);
- if (treeview == NULL)
- {
- g_debug ("Treeview not init correctly");
- return OP_ERROR;
- }
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
- store = GTK_LIST_STORE (model);
- if (store == NULL)
- {
- g_debug ("The store of package list not init correctly");
- return OP_ERROR;
- }
-
- g_object_ref (model);
- gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), NULL);
- gtk_list_store_clear (store);
-
- pix = application_manager_data_get_status_pixbuf (appdata,
PKG_STATUS_AVAILABLE);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- COL_STATUS, pix,
- COL_NAME, "test-core",
- COL_SIZE, "11k",
- COL_POINTER, NULL,
- -1);
-
- pix = application_manager_data_get_status_pixbuf (appdata,
PKG_STATUS_INSTALLED);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- COL_STATUS, pix,
- COL_NAME, "test-vim",
- COL_SIZE, "21k",
- COL_POINTER, NULL,
- -1);
-
- pix = application_manager_data_get_status_pixbuf (appdata,
PKG_STATUS_UPGRADEABLE);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- COL_STATUS, pix,
- COL_NAME, "test-game",
- COL_SIZE, "188k",
- COL_POINTER, NULL,
- -1);
-
- pix = application_manager_data_get_status_pixbuf (appdata,
PKG_STATUS_AVAILABLE_MARK_FOR_INSTALL);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- COL_STATUS, pix,
- COL_NAME, "test-dialer",
- COL_SIZE, "211k",
- COL_POINTER, NULL,
- -1);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), model);
- g_object_unref (model);
-
- return OP_SUCCESS;
-}
-
-/*
* @brief Get the name that the roll was selected from the treeview
* @param treeview The treeview
* @return The package name.
@@ -331,7 +213,7 @@
gpointer pkglist)
{
GtkWidget *treeview;
- GtkTreeModel *model;
+ GtkTreeModel *model, *filter;
GtkListStore *store;
GtkTreeIter iter;
@@ -341,23 +223,20 @@
treeview = application_manager_get_tvpkglist (appdata);
g_return_if_fail (GTK_IS_TREE_VIEW (treeview));
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+ filter = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+ model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (filter));
+
g_return_if_fail (GTK_IS_TREE_MODEL (model));
store = GTK_LIST_STORE (model);
- g_object_ref (model);
- gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), NULL);
gtk_list_store_clear (store);
translate_package_list_to_store (appdata, store, pkglist);
/* Save current list to the application manager data */
application_manager_data_set_current_list (appdata, pkglist);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), model);
- g_object_unref (model);
/* ensure one item is selected */
- if (gtk_tree_model_get_iter_first (model, &iter))
+ if (gtk_tree_model_get_iter_first (filter, &iter))
gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW
(treeview)),
&iter);
}
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-07 17:14:21 UTC (rev 3372)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
2007-11-07 17:32:38 UTC (rev 3373)
@@ -34,6 +34,10 @@
static void
text_changed_cb (MokoSearchBar *searchbar, GtkEditable *editable,
ApplicationManagerData *data)
{
+ GtkTreeModel *filter;
+
+ filter = gtk_tree_view_get_model (GTK_TREE_VIEW (data->tvpkglist));
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter));
}
static void
@@ -126,6 +130,10 @@
searchbar = moko_search_bar_new_with_combo (GTK_COMBO_BOX (combo));
g_signal_connect (searchbar, "combo-changed", G_CALLBACK (combo_changed_cb),
appdata);
+ g_signal_connect (searchbar, "text-changed", G_CALLBACK (text_changed_cb),
appdata);
+ g_signal_connect (searchbar, "toggled", G_CALLBACK (searchbar_toggled_cb),
appdata);
+
+ appdata->searchbar = searchbar;
return searchbar;
}
--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2007-11-08 10:55:44 +0100 (Thu, 08 Nov 2007)
New Revision: 3374
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
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
Log:
* src/Makefile.am:
* src/appmanager-data.c: (application_manager_data_init):
* src/appmanager-data.h:
* src/appmanager-window.c: (main):
Remove menus from build
Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
2007-11-07 17:32:38 UTC (rev 3373)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
2007-11-08 09:55:44 UTC (rev 3374)
@@ -1,3 +1,12 @@
+2007-11-08 Thomas Wood <[EMAIL PROTECTED]>
+
+ * src/Makefile.am:
+ * src/appmanager-data.c: (application_manager_data_init):
+ * src/appmanager-data.h:
+ * src/appmanager-window.c: (main):
+
+ Remove menus from build
+
2007-11-07 Thomas Wood <[EMAIL PROTECTED]>
* src/appmanager-data.h:
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
2007-11-07 17:32:38 UTC (rev 3373)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
2007-11-08 09:55:44 UTC (rev 3374)
@@ -3,7 +3,6 @@
bin_PROGRAMS = openmoko-appmanager
openmoko_appmanager_SOURCES = appmanager-window.c\
- application-menu.c\
ipkgapi.c\
navigation-area.c\
tool-box.c\
@@ -11,7 +10,6 @@
appmanager-data.c\
package-list.c\
pixbuf-list.c\
- select-menu.c\
apply-dialog.c\
install-dialog.c \
search-bar.c \
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
===================================================================
---
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
2007-11-07 17:32:38 UTC (rev 3373)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
2007-11-08 09:55:44 UTC (rev 3374)
@@ -37,7 +37,6 @@
data->mwindow = NULL;
data->menubox = NULL;
- data->selectmenu = NULL;
data->searchentry = NULL;
data->tvpkglist = NULL;
data->tvdetail = NULL;
@@ -100,20 +99,6 @@
}
/*
- * @brief Set the select menu to the application manager data
- * @param appdata The application manager data struct
- * @param selectmenu The select menu
- */
-void
-application_manager_data_set_select_menu (ApplicationManagerData *appdata,
- GtkMenu *selectmenu)
-{
- g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata));
-
- appdata->selectmenu = selectmenu;
-}
-
-/*
* @brief Set the search entry to the application manager data
* @param appdata The application manager data struct
* @param entry The search entry
@@ -388,19 +373,6 @@
}
/*
- * @brief Get the select menu from the application manager data
- * @param appdata The application manager data
- * @return The select menu
- */
-GtkMenu *
-application_manager_get_select_menu (ApplicationManagerData *appdata)
-{
- g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL);
-
- return appdata->selectmenu;
-}
-
-/*
* @brief Get the search entry from the application manager data
* @param appdata The application manager data
* @return The search entry
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-07 17:32:38 UTC (rev 3373)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
2007-11-08 09:55:44 UTC (rev 3374)
@@ -55,7 +55,6 @@
GtkWidget *mwindow; /* The main window */
GtkWidget *menubox; /* The menubox */
- GtkMenu *selectmenu; /* The select menu */
GtkEntry *searchentry; /* The search entry */
GtkWidget *tvpkglist; /* The treeview of the package list */
GtkWidget *tvdetail; /* The textview of the details info */
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-07 17:32:38 UTC (rev 3373)
+++
trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c
2007-11-08 09:55:44 UTC (rev 3374)
@@ -28,7 +28,6 @@
#include "appmanager-data.h"
#include "errorcode.h"
#include "package-list.h"
-#include "select-menu.h"
#include "search-bar.h"
#include "ipkg-utils.h"
@@ -41,10 +40,6 @@
{
ApplicationManagerData *appdata;
GtkWidget *window;
- GtkWidget *menubox;
- GtkWidget *menuitem;
- GtkWidget *appmenu;
- GtkWidget *selectmenu;
GtkWidget *navigation;
GtkWidget *toolbox;
GtkWidget *detail;
@@ -84,27 +79,6 @@
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (appdata->mwindow), vbox);
- appmenu = application_menu_new (appdata);
-
- selectmenu = moko_select_menu_new (appdata);
- application_manager_data_set_select_menu (appdata, GTK_MENU (selectmenu));
-
-
- /* Save the menubox to the application manager data */
- menubox = gtk_menu_bar_new ();
- gtk_box_pack_start (GTK_BOX (vbox), menubox, FALSE, FALSE, 0);
-
- application_manager_data_set_menubox (appdata, menubox);
-
-
- menuitem = gtk_menu_item_new_with_label ("Package");
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), appmenu);
- gtk_menu_shell_append (GTK_MENU_SHELL (menubox), menuitem);
-
- menuitem = gtk_menu_item_new_with_label ("Select");
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), selectmenu);
- gtk_menu_shell_append (GTK_MENU_SHELL (menubox), menuitem);
-
notebook = gtk_notebook_new ();
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM);
gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0);
--- End Message ---