Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm/.git;a=commitdiff;h=5702264ade5f55759cb78ea81ffe5bbbdd192966
commit 5702264ade5f55759cb78ea81ffe5bbbdd192966
Author: Priyank <[EMAIL PROTECTED]>
Date: Sat Jul 28 20:59:43 2007 +0530
gfpm-interface: display missing dependencies (if any) when installing from file
* major bugfixes in gfpm_plist_message()
diff --git a/src/gfpm-interface.c b/src/gfpm-interface.c
index 2e52cea..7a00e61 100644
--- a/src/gfpm-interface.c
+++ b/src/gfpm-interface.c
@@ -1102,9 +1102,45 @@ cb_gfpm_install_file_clicked (GtkButton *button,
gpointer data)
pacman_trans_addtarget (fpm);
if (pacman_trans_prepare(&data) == -1)
{
+ PM_LIST *i;
+ GList *pkgs = NULL;
+
str = g_strdup_printf (_("Failed to prepare transaction (%s)\n"),
pacman_strerror (pm_errno));
gfpm_error (str);
g_free (str);
+ switch ((long)pm_errno)
+ {
+ case PM_ERR_UNSATISFIED_DEPS:
+ for
(i=pacman_list_first(data);i;i=pacman_list_next(i))
+ {
+ GString *depstring = g_string_new ("");
+ PM_DEPMISS *m = pacman_list_getdata (i);
+ depstring = g_string_append (depstring,
(char*)pacman_dep_getinfo(m,PM_DEP_NAME));
+ switch ((long)pacman_dep_getinfo(m,
PM_DEP_MOD))
+ {
+ gchar *val = NULL;
+ case PM_DEP_MOD_EQ:
+ val = g_strdup_printf
("=%s", (char*)pacman_dep_getinfo(m,PM_DEP_VERSION));
+ depstring =
g_string_append (depstring, val);
+ break;
+ case PM_DEP_MOD_GE:
+ val = g_strdup_printf
(">=%s", (char*)pacman_dep_getinfo(m,PM_DEP_VERSION));
+ depstring =
g_string_append (depstring, val);
+ break;
+ case PM_DEP_MOD_LE:
+ val = g_strdup_printf
("<=%s", (char*)pacman_dep_getinfo(m,PM_DEP_VERSION));
+ depstring =
g_string_append (depstring, val);
+ break;
+ default: break;
+ }
+ pkgs = g_list_append (pkgs,
(char*)g_strdup(depstring->str));
+ g_string_free (depstring, FALSE);
+ }
+ pacman_list_free (data);
+ gfpm_plist_message (_("Following dependencies
were not met. Please install these packages first."), GTK_MESSAGE_WARNING,
pkgs);
+ break;
+ }
+
goto cleanup;
}
if (pacman_trans_commit(&data) == -1)
diff --git a/src/gfpm-messages.c b/src/gfpm-messages.c
index d1ccd40..4f9b225 100644
--- a/src/gfpm-messages.c
+++ b/src/gfpm-messages.c
@@ -134,7 +134,7 @@ gfpm_plist_question (const char *main_msg, GList *packages)
return ret;
}
-gint
+void
gfpm_plist_message (const char *main_msg, GtkMessageType type, GList *packages)
{
GtkWidget *dialog;
@@ -144,8 +144,10 @@ gfpm_plist_message (const char *main_msg, GtkMessageType
type, GList *packages)
GtkTreeIter iter;
GtkWidget *tvw;
GtkWidget *lbl;
- PM_LIST *l;
-
+ GList *l;
+
+ if (packages == NULL)
+ return;
dialog = gtk_message_dialog_new (GTK_WINDOW(gfpm_mw),
GTK_DIALOG_DESTROY_WITH_PARENT,
type,
@@ -162,20 +164,13 @@ gfpm_plist_message (const char *main_msg, GtkMessageType
type, GList *packages)
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(tvw), -1,
_("Package"), r, "text", 0, NULL);
for (l=g_list_first(packages);l;l=g_list_next(l))
{
- char *pkgname, *pkgver;
- char *pkgstring;
- PM_SYNCPKG *sync = g_list_getdata (l);
- PM_PKG *pkg = pacman_sync_getinfo (sync, PM_SYNC_PKG);
-
- pkgname = pacman_pkg_getinfo (pkg, PM_PKG_NAME);
- pkgver = pacman_pkg_getinfo (pkg, PM_PKG_VERSION);
+ char *pkgstring = (char*)l->data;
gtk_list_store_append (store, &iter);
- pkgstring = g_strdup_printf("%s%s", pkgname, pkgver);
gtk_list_store_set (store, &iter, 0, pkgstring, -1);
g_free (pkgstring);
}
gtk_tree_view_set_model (GTK_TREE_VIEW(tvw), GTK_TREE_MODEL(store));
- gtk_widget_set_size_request (tvw, 230, 120);
+ gtk_widget_set_size_request (tvw, 230, 80);
gtk_widget_show (tvw);
gtk_box_pack_start (GTK_DIALOG(dialog)->vbox, swindow, FALSE, FALSE, 0);
gtk_widget_show_all (GTK_DIALOG(dialog)->vbox);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git