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

Reply via email to