r481 - trunk/src/target/OM-2007/applications/openmoko-appmanager/src
caowai_song at gta01.hmw-consulting.de
caowai_song at gta01.hmw-consulting.de
Sun Dec 31 06:49:38 CET 2006
Author: caowai_song
Date: 2006-12-31 06:48:51 +0100 (Sun, 31 Dec 2006)
New Revision: 481
Modified:
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/apply-dialog.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/ipkgapi.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/select-menu.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
Log:
Add install package from local filesystem.
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -20,6 +20,9 @@
#include "application-menu.h"
#include "appmanager-window.h"
+#include "package-list.h"
+#include "ipkgapi.h"
+#include "errorcode.h"
/**
* @brief The Callback function of the show status menu
@@ -28,6 +31,7 @@
on_showstatus_activate (GtkMenuItem *menuitem, gpointer user_data)
{
g_debug ("Call on_showstatus_activate");
+
}
/**
@@ -45,7 +49,102 @@
void
on_install_single_application_activate (GtkMenuItem *menuitem, gpointer user_data)
{
+ ApplicationManagerData *appdata;
+ GtkWidget *confirmdialog;
+ gint ret;
+ GtkWidget *filechooser;
+ gint res;
+ GtkFileFilter *filter;
+ gchar *filename;
+ char *newname = NULL;
+
g_debug ("Call on_install_single_application_activate");
+ g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (user_data));
+ appdata = MOKO_APPLICATION_MANAGER_DATA (user_data);
+
+ if (!package_list_check_marked_list_empty (appdata))
+ {
+ confirmdialog = gtk_message_dialog_new (NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_YES_NO,
+ _("It will unselect all you selected packages, continue?"));
+ ret = gtk_dialog_run (GTK_DIALOG (confirmdialog));
+ gtk_widget_destroy (confirmdialog);
+ if (ret != GTK_RESPONSE_YES)
+ {
+ g_debug ("User cancel");
+ return;
+ }
+ }
+
+ filechooser = gtk_file_chooser_dialog_new(_("Add application"),
+ NULL,
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ NULL);
+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(filechooser), FALSE);
+ gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(filechooser), FALSE);
+ gtk_window_set_default_size (GTK_WINDOW (filechooser), 400, 300);
+
+ filter = gtk_file_filter_new();
+ gtk_file_filter_set_name(filter, _("Ipk files(*.ipk)"));
+ gtk_file_filter_add_pattern(filter, "*.ipk");
+ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter);
+
+ filter = gtk_file_filter_new();
+ gtk_file_filter_set_name(filter, _("All files(*.*)"));
+ gtk_file_filter_add_pattern(filter, "*");
+ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter);
+
+ res = gtk_dialog_run(GTK_DIALOG(filechooser));
+
+ if( (res == GTK_RESPONSE_ACCEPT) || (res == GTK_RESPONSE_OK) ) {
+ filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooser));
+ g_debug ("file name of user selected is :%s\n", filename);
+
+ res = ipkg_install_cmd (filename, "root", &newname);
+ if (res == 0)
+ {
+ package_list_free_all_dynamic (appdata);
+ ret = reinit_package_list (appdata);
+ if (ret != OP_SUCCESS)
+ {
+ g_debug ("Can not initial the libipkg, the result is%d", ret);
+ g_free (filename);
+ gtk_widget_destroy(filechooser);
+ return;
+ }
+ ret = package_list_build_index (appdata);
+ if (ret != OP_SUCCESS)
+ {
+ g_debug ("Can not build index for packages");
+ g_free (filename);
+ gtk_widget_destroy(filechooser);
+ return;
+ }
+ if (newname != NULL)
+ {
+ free (newname);
+ newname = NULL;
+ }
+ }
+ else
+ {
+ g_debug ("Install error, the error message is:%s", get_error_msg());
+ if (newname != NULL)
+ {
+ free (newname);
+ newname = NULL;
+ }
+ }
+
+ g_free (filename);
+ }
+
+ gtk_widget_destroy(filechooser);
+ return;
}
/**
@@ -120,3 +219,4 @@
return appmenu;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/application-menu.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -27,3 +27,4 @@
GtkMenu *application_menu_new (ApplicationManagerData *appdata);
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/apply-dialog.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/apply-dialog.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/apply-dialog.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -112,3 +112,4 @@
return applydialog;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -575,3 +575,4 @@
return appdata->installdialog;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -183,3 +183,4 @@
G_END_DECLS
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -121,3 +121,4 @@
return 0;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -29,3 +29,4 @@
#define _(String) (String)
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -205,3 +205,4 @@
g_object_unref (pix);
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -293,3 +293,4 @@
strcpy (priv->installinfolist[priv->installnum], info);
priv->installnum ++;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/install-dialog.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -80,3 +80,4 @@
G_END_DECLS
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/ipkgapi.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/ipkgapi.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/ipkgapi.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -94,3 +94,4 @@
char *get_error_msg();
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -476,3 +476,4 @@
gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), model);
g_object_unref (model);
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -51,3 +51,4 @@
const gchar *str);
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -47,7 +47,6 @@
} SectionList;
static gint package_list_insert_node_without_check (PackageList *pkglist, IPK_PACKAGE *pkg);
-static void package_list_free_all_dynamic (ApplicationManagerData *appdata);
/**
* @brief Version compare
@@ -145,6 +144,41 @@
}
/**
+ * @brief Reinit the package list. Only get the packages from the lib ipkg.
+ * @param appdata The application manager data
+ * @return If success, return OP_SUCCESS, else return error code
+ */
+gint
+reinit_package_list (ApplicationManagerData *appdata)
+{
+ PKG_LIST_HEAD *head;
+ int ret;
+
+ head = g_malloc (sizeof (PKG_LIST_HEAD));
+ if (head == NULL)
+ {
+ g_debug ("Can not malloc memory for the package list header");
+ return OP_MAMORY_MALLOC_ERROR;
+ }
+
+ head->length = 0;
+ head->pkg_list = NULL;
+
+ ret = ipkg_list_available_cmd (head);
+ if (ret != 0)
+ {
+ //Can't get the package list correctly
+ g_debug ("Can not get the package list, the result is %d\nthe error message is:%s",
+ ret, get_error_msg());
+ g_free (head);
+ return OP_ERROR;
+ }
+
+ application_manager_data_set_pkglist (appdata, head);
+ return OP_SUCCESS;
+}
+
+/**
* @brief Create a new node of section list.
*
* If the param name is NULL, return NULL;
@@ -359,6 +393,8 @@
nosecpkg = NULL;
application_manager_data_set_upgrade_list (appdata, nosecpkg);
}
+
+ application_manager_data_set_current_list (appdata, NULL);
}
/**
@@ -1389,7 +1425,7 @@
STATUS_REINIT);
package_list_free_all_dynamic (appdata);
- ret = init_package_list (appdata);
+ ret = reinit_package_list (appdata);
if (ret != OP_SUCCESS)
{
g_debug ("Can not initial the libipkg, the result is%d", ret);
@@ -1414,7 +1450,7 @@
* @brief Free all dynamic data
* @param appdata The application manager data
*/
-static void
+void
package_list_free_all_dynamic (ApplicationManagerData *appdata)
{
PKG_LIST_HEAD *pkgheader;
@@ -1458,3 +1494,4 @@
return number;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.h 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.h 2006-12-31 05:48:51 UTC (rev 481)
@@ -26,6 +26,8 @@
gint init_package_list (ApplicationManagerData *appdata);
+gint reinit_package_list (ApplicationManagerData *appdata);
+
gint package_list_build_index (ApplicationManagerData *appdata);
void package_list_add_section_to_filter_menu (ApplicationManagerData *appdata);
@@ -71,6 +73,9 @@
gpointer package_list_execute_change (gpointer data);
+void package_list_free_all_dynamic (ApplicationManagerData *appdata);
+
gint package_list_get_number_of_selected (ApplicationManagerData *appdata);
#endif
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/select-menu.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/select-menu.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/select-menu.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -403,3 +403,4 @@
(event != NULL) ? event->button : 0,
gdk_event_get_time((GdkEvent *) event));
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c 2006-12-31 01:40:37 UTC (rev 480)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c 2006-12-31 05:48:51 UTC (rev 481)
@@ -191,3 +191,4 @@
return toolbox;
}
+
More information about the commitlog
mailing list