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

thomas at docs.openmoko.org thomas at docs.openmoko.org
Fri May 9 18:13:50 CEST 2008


Author: thomas
Date: 2008-05-09 18:13:50 +0200 (Fri, 09 May 2008)
New Revision: 4423

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/configure.ac
   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
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.h
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.h
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c
Log:
2008-05-09  Thomas Wood  <thomas at openedhand.com>

	* configure.ac:
	* src/Makefile.am:
	* src/appmanager-data.c: (application_manager_data_init):
	* src/appmanager-data.h:
	* src/appmanager-window.c: (main):
	* src/detail-area.c: (detail_area_new), (format_depends_list),
	(detail_area_update_info):
	* src/detail-area.h:
	* src/navigation-area.c: (on_selection_changed),
	(model_filter_func):
	* src/package-store.c:
	* src/package-store.h:
	* src/search-bar.c: (combo_changed_cb), (searchbar_toggled_cb),
	(search_bar_new):
	* src/tool-box.c: (on_upgrade_clicked), (on_install_clicked),
	(on_remove_clicked):

	Convert to libopkg API


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2008-05-09 16:13:50 UTC (rev 4423)
@@ -1,3 +1,24 @@
+2008-05-09  Thomas Wood  <thomas at openedhand.com>
+
+	* configure.ac:
+	* src/Makefile.am:
+	* src/appmanager-data.c: (application_manager_data_init):
+	* src/appmanager-data.h:
+	* src/appmanager-window.c: (main):
+	* src/detail-area.c: (detail_area_new), (format_depends_list),
+	(detail_area_update_info):
+	* src/detail-area.h:
+	* src/navigation-area.c: (on_selection_changed),
+	(model_filter_func):
+	* src/package-store.c:
+	* src/package-store.h:
+	* src/search-bar.c: (combo_changed_cb), (searchbar_toggled_cb),
+	(search_bar_new):
+	* src/tool-box.c: (on_upgrade_clicked), (on_install_clicked),
+	(on_remove_clicked):
+
+	Convert to libopkg API
+
 2007-11-19  Thomas Wood  <thomas at openedhand.com>
 
 	* src/ipkg-utils.c: (check_for_upgrade), (get_upgrade_list):

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/configure.ac
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/configure.ac	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/configure.ac	2008-05-09 16:13:50 UTC (rev 4423)
@@ -13,12 +13,10 @@
 # base deps
 PKG_CHECK_MODULES(OPENMOKO, libmokoui2,,
                  AC_MSG_ERROR([*** Required OpenMoko Libraries not installed ***]))
-PKG_CHECK_MODULES(LIBIPKG, libipkg,,
-                exit)
-PKG_CHECK_MODULES(GTHREAD, gthread-2.0,,
-                exit)
-LIBS="$LIBS $GTK_LIBS $LIBIPKG_LIBS $GTHREAD_LIBS"
-CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBIPKG_CFLAGS -DIPKG_LIB"
+PKG_CHECK_MODULES(LIBOPKG, libopkg = 0.1.3)
+PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
+LIBS="$LIBS $GTK_LIBS $LIBOPKG_LIBS $GTHREAD_LIBS"
+CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBOPKG_CFLAGS -DOPKG_LIB"
 
 # output stuff
 AC_OUTPUT([

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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am	2008-05-09 16:13:50 UTC (rev 4423)
@@ -3,7 +3,6 @@
 bin_PROGRAMS = openmoko-appmanager
 
 openmoko_appmanager_SOURCES = appmanager-window.c\
-                              ipkgapi.c\
                               navigation-area.c\
                               tool-box.c\
                               detail-area.c\
@@ -11,7 +10,6 @@
                               pixbuf-list.c\
                               install-dialog.c \
                               search-bar.c \
-                              ipkg-utils.c \
                               am-progress-dialog.c \
                               package-store.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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -59,6 +59,11 @@
     }
   data->searchhistory = NULL;
 
+  data->opkg = opkg_new ();
+#if 0
+  opkg_set_option (data->opkg, "offline_root", "/tmp");
+  opkg_re_read_config_files (data->opkg);
+#endif
 }
 
 /*

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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h	2008-05-09 16:13:50 UTC (rev 4423)
@@ -21,6 +21,7 @@
 #define _FIC_APPMANAGER_DATA_H
 
 #include <gtk/gtk.h>
+#include <libopkg/opkg.h>
 
 #include "pixbuf-list.h"
 
@@ -53,6 +54,8 @@
 typedef struct _ApplicationManagerData {
   GObject          parent;             /* The parent of the struct */
 
+  opkg_t *opkg;
+
   GtkWidget        *mwindow;           /* The main window */
   GtkWidget        *menubox;           /* The menubox */
   GtkEntry         *searchentry;       /* The search entry */

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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -70,7 +70,7 @@
   init_pixbuf_list (appdata);
 
   /* create the package list store */
-  pkg_list = package_store_new ();
+  pkg_list = package_store_new (appdata->opkg);
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_size_request (window, 400, 600);

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.c	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -20,12 +20,11 @@
 #include <string.h>
 
 #include <moko-finger-scroll.h>
+#include <libopkg/opkg.h>
 
 #include "detail-area.h"
 #include "navigation-area.h"
 
-#include "ipkgapi.h"
-
 /*
  * @brief Create a detail area to the application manager data
  * @param appdata The application manager data
@@ -55,6 +54,7 @@
   return GTK_WIDGET (detail);
 }
 
+#if 0
 /*
  * @brief Format the depends list of package.
  * @param depends The depends list
@@ -83,7 +83,7 @@
     }
   dest[i] = 0;
 }
-
+#endif
 /*
  * @brief Update the detail area infomation base on the package that selected
  * @param appdata The application manager data
@@ -91,7 +91,7 @@
  */
 void 
 detail_area_update_info (ApplicationManagerData *appdata, 
-                         IPK_PACKAGE *pkg)
+                         opkg_package_t *pkg)
 {
   GtkWidget      *textview;
   GtkTextBuffer  *buffer;
@@ -99,7 +99,7 @@
   GdkPixbuf      *pix;
   GtkTextTagTable   *tagtable;
   gint           pstart, pend;
-  char           *depends;
+  /* char           *depends; */
 
   g_debug ("Update the info in the detail area");
 
@@ -181,6 +181,7 @@
   gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
 
   /* Set the depends */
+  /* XXX: doeso the user really care about depends?
   depends = pkg->depends;
   if (depends != NULL)
     {
@@ -206,6 +207,7 @@
 
       g_free (dep);
     }
+    */
   if (pix)
     g_object_unref (pix);
 }

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.h	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/detail-area.h	2008-05-09 16:13:50 UTC (rev 4423)
@@ -21,14 +21,14 @@
 #define _FIC_DETAIL_AREA_H
 
 #include <gtk/gtk.h>
+#include <libopkg/opkg.h>
 
 #include "appmanager-data.h"
-#include "ipkgapi.h"
 
 GtkWidget *detail_area_new (ApplicationManagerData *appdata);
 
 void detail_area_update_info (ApplicationManagerData *appdata, 
-                              IPK_PACKAGE *pkg);
+                              opkg_package_t *pkg);
 
 #endif
 

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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/navigation-area.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -27,8 +27,8 @@
 #include "detail-area.h"
 #include "package-store.h"
 #include "select-menu.h"
+#include <libopkg/opkg.h>
 
-#include "ipkgapi.h"
 
 /*
  * @brief The callback function of the signal "cursor-changed"
@@ -39,7 +39,7 @@
 {
   GtkTreeModel     *model;
   GtkTreeIter      iter;
-  IPK_PACKAGE      *pkg;
+  opkg_package_t   *pkg;
 
   g_debug ("Call the on_treeview_cursor_changed");
 
@@ -48,7 +48,7 @@
     gtk_tree_model_get (model, &iter, COL_POINTER, &pkg, -1);
     detail_area_update_info (data, pkg);
     
-    if (pkg->state_status == SS_INSTALLED)
+    if (pkg->installed)
     {
       gtk_widget_set_sensitive (GTK_WIDGET (data->install_btn), FALSE);
       gtk_widget_set_sensitive (GTK_WIDGET (data->remove_btn), TRUE);
@@ -73,7 +73,7 @@
 gboolean
 model_filter_func (GtkTreeModel *model, GtkTreeIter *iter, ApplicationManagerData *data)
 {
-  IPK_PACKAGE *pkg;
+  opkg_package_t *pkg;
   
   if (!data->searchbar_needle)
     return TRUE;
@@ -86,7 +86,8 @@
  
   if (data->searchbar_search_type == SEARCH_ON_SECTION)
   {
-    return (g_str_equal (pkg->section, data->searchbar_needle));
+    /* return (g_str_equal (pkg->section, data->searchbar_needle)); */
+    /* FIXME: search on group tag? */
   }
   else if (data->searchbar_search_type == SEARCH_ON_NAME)
   {
@@ -98,7 +99,7 @@
   }
   else if (data->searchbar_search_type == SEARCH_ON_STATUS)
   {
-    return (pkg->state_status == GPOINTER_TO_INT (data->searchbar_needle));
+    return (pkg->installed == GPOINTER_TO_INT (data->searchbar_needle));
   }
 
   return FALSE;

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.c	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -18,43 +18,31 @@
  */
 
 #include "package-store.h"
-#include "ipkgapi.h"
+#include <libopkg/opkg.h>
 #include <glib.h>
 
+void
+opkg_package_callback (opkg_t *opkg, opkg_package_t *pkg, void *user_data)
+{
+  GtkListStore *store = GTK_LIST_STORE (user_data);
+
+  gtk_list_store_insert_with_values (store, NULL, -1,
+                                     COL_STATUS, pkg->installed,
+                                     COL_NAME, pkg->name,
+                                     COL_POINTER, pkg,
+                                     -1);
+}
+
 GtkTreeModel *
-package_store_new ()
+package_store_new (opkg_t *opkg)
 {
   GtkListStore *store;
-  IPK_PACKAGE *pkg;
-  PKG_LIST_HEAD list;
-  int ret;
-  GRegex *regex;
   
-  ipkg_initialize (0);
-  
   /* status, name, size, pkg */
   store = gtk_list_store_new (NUM_COL, G_TYPE_INT,
                               G_TYPE_STRING, G_TYPE_POINTER);
 
-  ret = ipkg_list_available_cmd (&list);
-  g_return_val_if_fail (ret >= 0, NULL);
-  
-  pkg = list.pkg_list;
-  
-  regex = g_regex_new ("(-doc$|-dev$|-dbg$|-locale)", G_REGEX_OPTIMIZE, 0, NULL);
-  
-  while (pkg)
-  {
-    if (!g_regex_match (regex, pkg->name, 0, NULL))
-      gtk_list_store_insert_with_values (store, NULL, -1,
-                                       COL_STATUS, pkg->state_status,
-                                       COL_NAME, pkg->name,
-                                       COL_POINTER, pkg,
-                                       -1);
-    pkg = pkg->next;
-  }
-  
-  g_regex_unref (regex);
+  opkg_list_packages (opkg, opkg_package_callback, store);
 
   return GTK_TREE_MODEL (store);
 }

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.h	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-store.h	2008-05-09 16:13:50 UTC (rev 4423)
@@ -21,6 +21,7 @@
 #define PACKAGE_STORE_H
 
 #include <gtk/gtk.h>
+#include <libopkg/opkg.h>
 
 enum {
   COL_STATUS = 0,
@@ -30,6 +31,6 @@
 };
 
 
-GtkTreeModel * package_store_new ();
+GtkTreeModel * package_store_new (opkg_t *opkg);
 
 #endif /* PACKAGE_STORE_H */

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	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -21,7 +21,7 @@
 #include "navigation-area.h"
 #include "package-store.h"
 
-#include "ipkgapi.h"
+#include <libopkg/opkg.h>
 
 static gboolean
 combo_seperator_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
@@ -91,9 +91,9 @@
   {
     data->searchbar_search_type = SEARCH_ON_STATUS;
     if (active == FILTER_INSTALLED)
-      data->searchbar_needle = GINT_TO_POINTER (SS_INSTALLED);
+      data->searchbar_needle = GINT_TO_POINTER (1);
     else
-      data->searchbar_needle = GINT_TO_POINTER (SS_NOT_INSTALLED);
+      data->searchbar_needle = GINT_TO_POINTER (0);
   }
   else
   {
@@ -124,11 +124,11 @@
   else
     combo_changed_cb (searchbar, NULL, data);
 }
-
+/*
 gboolean
 section_search_hash (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GHashTable *hash)
 {
-  IPK_PACKAGE *pkg;
+  opkg_package_t *pkg;
 
   gtk_tree_model_get (model, iter, COL_POINTER, &pkg, -1);
 
@@ -150,7 +150,7 @@
 gboolean
 section_search_slist (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GSList **head)
 {
-  IPK_PACKAGE *pkg;
+  opkg_package_t *pkg;
 
   gtk_tree_model_get (model, iter, COL_POINTER, &pkg, -1);
 
@@ -162,7 +162,7 @@
 
   return FALSE;
 }
-
+*/
 void
 slist_insert (gchar *value, GtkListStore *list)
 {
@@ -177,7 +177,7 @@
   GtkListStore *filter;
   GtkCellRenderer *renderer;
   /* GHashTable *hash; */
-  GSList *slist = NULL;
+  /* GSList *slist = NULL; */
 
   filter = gtk_list_store_new (1, G_TYPE_STRING);
   appdata->filter_store = GTK_TREE_MODEL (filter);
@@ -193,12 +193,12 @@
   g_hash_table_foreach (hash, (GHFunc) section_hash_insert, filter);
   g_hash_table_unref (hash);
 #endif
-  
+ /* 
   gtk_tree_model_foreach (pkg_list, (GtkTreeModelForeachFunc) section_search_slist, &slist);
   slist = g_slist_sort (slist, (GCompareFunc) strcmp);
   g_slist_foreach (slist, (GFunc) slist_insert, filter);
   g_slist_free (slist);
-
+*/
   
   renderer = gtk_cell_renderer_text_new ();
   

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c	2008-05-09 15:20:46 UTC (rev 4422)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/tool-box.c	2008-05-09 16:13:50 UTC (rev 4423)
@@ -32,9 +32,9 @@
 void 
 on_upgrade_clicked (GtkButton *bupgrade, gpointer data)
 {
+ /* 
   GList *list;
   int upgrades;
-  
   update_package_list (data);
   
   list = get_upgrade_list ();
@@ -59,22 +59,6 @@
   
   g_list_free (list);
   
-  /*
-  GtkWidget *dialog;
-
-  g_debug ("Clicked the button upgrade");
-  package_list_mark_all_upgradeable (MOKO_APPLICATION_MANAGER_DATA (data));
-  navigation_area_rebuild_from_latest (MOKO_APPLICATION_MANAGER_DATA (data));
-
-  g_debug ("Create a dialog");
-  dialog = gtk_message_dialog_new (NULL,
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_OK,
-                                   _("Marked all upgradeable packages"));
-  gtk_dialog_run (GTK_DIALOG (dialog));
-  gtk_widget_destroy (dialog);
-  g_debug ("destroy a dialog");
   */
 }
 
@@ -86,6 +70,7 @@
   GtkTreeModel *model;
   GtkTreeIter iter;
   gchar *name;
+  GtkWidget *dialog;
   
   sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->tvpkglist));
   
@@ -94,7 +79,12 @@
   
   gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);
   
-  install_package (data, name);
+  if (opkg_install_package (data->opkg, name, NULL, NULL) == 0)
+    dialog = gtk_message_dialog_new (NULL,0, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s was installed", name);
+  else
+    dialog = gtk_message_dialog_new (NULL,0, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s could not be installed", name);
+  gtk_dialog_run (GTK_DIALOG (dialog));
+  gtk_widget_destroy (dialog);
 }
 
 void
@@ -104,6 +94,7 @@
   GtkTreeModel *model;
   GtkTreeIter iter;
   gchar *name;
+  GtkWidget *dialog;
   
   sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->tvpkglist));
   
@@ -112,7 +103,13 @@
   
   gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);
   
-  remove_package (data, name);
+  if (opkg_remove_package (data->opkg, name, NULL, NULL) == 0)
+    dialog = gtk_message_dialog_new (NULL,0, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s was removed", name);
+  else
+    dialog = gtk_message_dialog_new (NULL,0, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s could not be removed", name);
+  gtk_dialog_run (GTK_DIALOG (dialog));
+  gtk_widget_destroy (dialog);
+
 }
 
 





More information about the commitlog mailing list