Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm/.git;a=commitdiff;h=162a5a20e69070e6464f9d6f7984d02065c55f5a
commit 162a5a20e69070e6464f9d6f7984d02065c55f5a
Author: Priyank <[EMAIL PROTECTED]>
Date: Sat Jul 21 18:34:47 2007 +0530
gfpm-interface: init separate transactions for sync and remove.
diff --git a/glade/gfpm.glade b/glade/gfpm.glade
index c1c4407..fca1648 100644
--- a/glade/gfpm.glade
+++ b/glade/gfpm.glade
@@ -169,9 +169,26 @@
<widget class="GtkToolItem" id="toolitem2">
<property name="visible">True</property>
<child>
- <widget class="GtkEntry" id="search_entry1">
+ <widget class="GtkHBox" id="hbox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Search
packages</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="search_entry1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/src/gfpm-interface.c b/src/gfpm-interface.c
index 0d85a93..2850b96 100644
--- a/src/gfpm-interface.c
+++ b/src/gfpm-interface.c
@@ -192,17 +192,39 @@ gfpm_interface_init (void)
static void
cb_gfpm_apply_btn_clicked (GtkButton *button, gpointer data)
{
- if (pacman_trans_init(PM_TRANS_TYPE_SYNC, 0, gfpm_progress_event, NULL,
gfpm_progress_install) == -1)
- g_print ("failed to init transaction (%s) \n",
pacman_strerror(pm_errno));
+ GString *errorstr = g_string_new ("");
+
gfpm_progress_show (TRUE);
/* process remove list first */
if (gfpm_package_list_is_empty(GFPM_REMOVE_LIST))
{
- g_print ("remove list is empty");
+ if (pacman_trans_init(PM_TRANS_TYPE_REMOVE, 0,
gfpm_progress_event, NULL, gfpm_progress_install) == -1)
+ {
+ gchar *str;
+ str = g_strdup_printf (_("Failed to init transaction
(%s)\n"), pacman_strerror(pm_errno));
+ errorstr = g_string_append (errorstr, str);
+ if (pm_errno == PM_ERR_HANDLE_LOCK)
+ errorstr = g_string_append (errorstr,
+
_("If you're sure a package manager is not already running, you can
delete /tmp/pacman-g2.lck"));
+ gfpm_error (errorstr->str);
+ return;
+ }
}
if (gfpm_package_list_is_empty(GFPM_INSTALL_LIST))
{
- g_print ("performing install list");
+ /* create transaction */
+ if (pacman_trans_init(PM_TRANS_TYPE_SYNC, 0,
gfpm_progress_event, NULL, gfpm_progress_install) == -1)
+ {
+ gchar *str;
+ str = g_strdup_printf (_("Failed to init transaction
(%s)\n"), pacman_strerror(pm_errno));
+ errorstr = g_string_append (errorstr, str);
+ if (pm_errno == PM_ERR_HANDLE_LOCK)
+ errorstr = g_string_append (errorstr,
+
_("If you're sure a package manager is not already running, you can
delete /tmp/pacman-g2.lck"));
+ gfpm_error (errorstr->str);
+ return;
+ }
+
GList *i = NULL;
PM_LIST *data, *pkgs;
for (i = install_list; i; i = i->next)
@@ -210,14 +232,19 @@ cb_gfpm_apply_btn_clicked (GtkButton *button, gpointer
data)
char *target = i->data;
pacman_trans_addtarget (target);
}
- if (pacman_trans_prepare(&data) == -1)
- g_print ("failed to prepare transaction
(%s)\n", pacman_strerror(pm_errno));
- pkgs = pacman_trans_getinfo (PM_TRANS_PACKAGES);
- if (pkgs == NULL) g_print ("pkgs is null.. bad bad
bad!\n");
- if (pacman_trans_commit(&data) == -1)
- g_print ("failed to commit transaction (%s)\n",
pacman_strerror(pm_errno));
- pacman_trans_release ();
+ if (pacman_trans_prepare(&data) == -1)
+ g_print ("failed to prepare transaction (%s)\n",
pacman_strerror(pm_errno));
+ pkgs = pacman_trans_getinfo (PM_TRANS_PACKAGES);
+ if (pkgs == NULL) g_print ("pkgs is null.. bad bad bad!\n");
+
+ /* commit transaction */
+ if (pacman_trans_commit(&data) == -1)
+ g_print ("failed to commit transaction (%s)\n",
pacman_strerror(pm_errno));
+ else
+ gfpm_progress_set_sub_text (_("Done"));
+
}
+ pacman_trans_release ();
}
diff --git a/src/gfpm-progress.c b/src/gfpm-progress.c
index ec73718..c73251f 100644
--- a/src/gfpm-progress.c
+++ b/src/gfpm-progress.c
@@ -103,16 +103,28 @@ gfpm_progress_install (unsigned char event, char
*pkgname, int percent, int howm
switch (event)
{
case PM_TRANS_PROGRESS_ADD_START:
- main_text = g_strdup (_("Installing package"));
+ if (howmany > 1)
+ main_text = g_strdup (_("Installing packages"));
+ else
+ main_text = g_strdup (_("Installing package"));
break;
case PM_TRANS_PROGRESS_UPGRADE_START:
- main_text = g_strdup (_("Upgrading package"));
+ if (howmany > 1)
+ main_text = g_strdup (_("Upgrading packages"));
+ else
+ main_text = g_strdup (_("Upgrading package"));
break;
case PM_TRANS_PROGRESS_REMOVE_START:
- main_text = g_strdup (_("Removing package"));
+ if (howmany > 1)
+ main_text = g_strdup (_("Removing packages"));
+ else
+ main_text = g_strdup (_("Removing package"));
break;
case PM_TRANS_PROGRESS_CONFLICTS_START:
- main_text = g_strdup (_("Checking package for file
conflicts"));
+ if (howmany > 1)
+ main_text = g_strdup (_("Checking packages for
file conflicts"));
+ else
+ main_text = g_strdup (_("Checking package for
file conflicts"));
break;
}
gfpm_progress_set_main_text (main_text);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git