diff src/gtk/gtkui_transfer.c @ 374:d207b8241e96

2003-1-21 Brian Masney <masneyb@gftp.org> * lib/config_file.c lib/gftp.h - set the character string arguments to const for the following functions: gftp_lookup_global_option(), gftp_lookup_request_option(), gftp_lookup_bookmark_option(), gftp_set_global_option(), gftp_set_request_option(), gftp_set_bookmark_option() * lib/misc.c lib/gftp.h - set the character string arguments to const for the function gftp_match_filespec() * src/gtk/gftp-gtk.c src/gtk/menu-items.c src/uicommon/gftpui.c - moved more UI independant parts to the uicommon directory. Moved some GUI specific functionality into gftp-gtk.c * src/text/gftp-text.c src/gtk/gftp-gtk.c src/uicommon/gftpui.c - pass the local/remote uidata/request structures to process_command(). Removed old function gftpui_common_init(). Added new gftpui_common_init() that sets up common functionality for a port. * src/gtk/gtkui.c src/gtk/gtkui_transfer.c - moved gftpui_add_file_to_transfer() to gtkui_transfer.c * src/gtk/gtkui_transfer.c - cleaned up these functions some and made them more modular * src/uicommon/gftpui.c src/uicommon/gftpui.h - for all of the command line functions, make the command argument a constant
author masneyb
date Wed, 21 Jan 2004 23:35:40 +0000
parents 39b57989c34a
children 14da115b149b
line wrap: on
line diff
--- a/src/gtk/gtkui_transfer.c	Wed Jan 21 16:46:01 2004 +0000
+++ b/src/gtk/gtkui_transfer.c	Wed Jan 21 23:35:40 2004 +0000
@@ -20,8 +20,36 @@
 #include "gftp-gtk.h"
 static const char cvsid[] = "$Id$";
 
+
+void
+gftpui_add_file_to_transfer (gftp_transfer * tdata, GList * curfle,
+                             char *filepos)
+{
+  gftpui_common_curtrans_data * transdata;
+  gftp_file * fle;
+  char *text[2];
+
+  fle = curfle->data;
+  text[0] = filepos;
+  if (fle->transfer_action == GFTP_TRANS_ACTION_SKIP)
+    text[1] = _("Skipped");
+  else
+    text[1] = _("Waiting...");
+
+  fle->user_data = gtk_ctree_insert_node (GTK_CTREE (dlwdw),
+                                          tdata->user_data, NULL, text, 5,
+                                          NULL, NULL, NULL, NULL,
+                                          FALSE, FALSE);
+  transdata = g_malloc (sizeof (*transdata));
+  transdata->transfer = tdata;
+  transdata->curfle = curfle;
+
+  gtk_ctree_node_set_row_data (GTK_CTREE (dlwdw), fle->user_data, transdata);
+}
+
+
 static void
-trans_selectall (GtkWidget * widget, gpointer data)
+gftpui_gtk_trans_selectall (GtkWidget * widget, gpointer data)
 {
   gftp_transfer * tdata;
   tdata = data;
@@ -31,7 +59,7 @@
 
 
 static void
-trans_unselectall (GtkWidget * widget, gpointer data)
+gftpui_gtk_trans_unselectall (GtkWidget * widget, gpointer data)
 {
   gftp_transfer * tdata;
   tdata = data;
@@ -41,14 +69,15 @@
 
 
 static void
-overwrite (GtkWidget * widget, gpointer data)
+gftpui_gtk_set_action (gftp_transfer * tdata, char * transfer_str,
+                       int transfer_action)
 {
   GList * templist, * filelist;
-  gftp_transfer * tdata;
   gftp_file * tempfle;
   int curpos;
 
-  tdata = data;
+  g_static_mutex_lock (&tdata->structmutex);
+
   curpos = 0;
   filelist = tdata->files;
   templist = GTK_CLIST (tdata->clist)->selection;
@@ -56,58 +85,37 @@
     {
       templist = get_next_selection (templist, &filelist, &curpos);
       tempfle = filelist->data;
-      tempfle->transfer_action = GFTP_TRANS_ACTION_OVERWRITE;
-      gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Overwrite"));
+      tempfle->transfer_action = transfer_action;
+      gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, transfer_str);
     }
+
+  g_static_mutex_unlock (&tdata->structmutex);
+}
+
+
+static void
+gftpui_gtk_overwrite (GtkWidget * widget, gpointer data)
+{
+  gftpui_gtk_set_action (data, _("Overwrite"), GFTP_TRANS_ACTION_OVERWRITE);
 }
 
 
 static void
-resume (GtkWidget * widget, gpointer data)
+gftpui_gtk_resume (GtkWidget * widget, gpointer data)
 {
-  GList * templist, * filelist;
-  gftp_transfer * tdata;
-  gftp_file * tempfle;
-  int curpos;
-
-  tdata = data;
-  curpos = 0;
-  filelist = tdata->files;
-  templist = GTK_CLIST (tdata->clist)->selection;
-  while (templist != NULL)
-    {
-      templist = get_next_selection (templist, &filelist, &curpos);
-      tempfle = filelist->data;
-      tempfle->transfer_action = GFTP_TRANS_ACTION_RESUME;
-      gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Resume"));
-    }
+  gftpui_gtk_set_action (data, _("Resume"), GFTP_TRANS_ACTION_RESUME);
 }
 
 
 static void
-skip (GtkWidget * widget, gpointer data)
+gftpui_gtk_skip (GtkWidget * widget, gpointer data)
 {
-  GList * templist, * filelist;
-  gftp_transfer * tdata;
-  gftp_file * tempfle;
-  int curpos;
-
-  tdata = data;
-  curpos = 0;
-  filelist = tdata->files;
-  templist = GTK_CLIST (tdata->clist)->selection;
-  while (templist != NULL)
-    {
-      templist = get_next_selection (templist, &filelist, &curpos);
-      tempfle = filelist->data;
-      tempfle->transfer_action = GFTP_TRANS_ACTION_SKIP;
-      gtk_clist_set_text (GTK_CLIST (tdata->clist), curpos, 3, _("Skip"));
-    }
+  gftpui_gtk_set_action (data, _("Skip"), GFTP_TRANS_ACTION_SKIP);
 }
 
 
 static void
-ok (GtkWidget * widget, gpointer data)
+gftpui_gtk_ok (GtkWidget * widget, gpointer data)
 {
   gftp_transfer * tdata;
   gftp_file * tempfle;
@@ -122,19 +130,21 @@
         break;
     }
 
+  tdata->ready = 1;
   if (templist == NULL)
     {
       tdata->show = 0; 
-      tdata->ready = tdata->done = 1;
+      tdata->done = 1;
     }
   else
-    tdata->show = tdata->ready = 1;
+    tdata->show = 1;
+
   g_static_mutex_unlock (&tdata->structmutex);
 }
 
 
 static void
-cancel (GtkWidget * widget, gpointer data)
+gftpui_gtk_cancel (GtkWidget * widget, gpointer data)
 {
   gftp_transfer * tdata;
 
@@ -148,16 +158,17 @@
 
 #if GTK_MAJOR_VERSION > 1
 static void
-transfer_action (GtkWidget * widget, gint response, gpointer user_data)
+gftpui_gtk_transfer_action (GtkWidget * widget, gint response,
+                            gpointer user_data)
 {
   switch (response)
     {
       case GTK_RESPONSE_OK:
-        ok (widget, user_data);
+        gftpui_gtk_ok (widget, user_data);
         gtk_widget_destroy (widget);
         break;
       case GTK_RESPONSE_CANCEL:
-        cancel (widget, user_data);
+        gftpui_gtk_cancel (widget, user_data);
         /* no break */
       default:
         gtk_widget_destroy (widget);
@@ -298,19 +309,19 @@
   tempwid = gtk_button_new_with_label (_("Overwrite"));
   gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
   gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
-		      GTK_SIGNAL_FUNC (overwrite), (gpointer) tdata);
+		      GTK_SIGNAL_FUNC (gftpui_gtk_overwrite), (gpointer) tdata);
   gtk_widget_show (tempwid);
 
   tempwid = gtk_button_new_with_label (_("Resume"));
   gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
   gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
-		      GTK_SIGNAL_FUNC (resume), (gpointer) tdata);
+		      GTK_SIGNAL_FUNC (gftpui_gtk_resume), (gpointer) tdata);
   gtk_widget_show (tempwid);
 
   tempwid = gtk_button_new_with_label (_("Skip File"));
   gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
-  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (skip),
-		      (gpointer) tdata);
+  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
+                      GTK_SIGNAL_FUNC (gftpui_gtk_skip), (gpointer) tdata);
   gtk_widget_show (tempwid);
 
   hbox = gtk_hbox_new (TRUE, 20);
@@ -320,13 +331,13 @@
   tempwid = gtk_button_new_with_label (_("Select All"));
   gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
   gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
-		      GTK_SIGNAL_FUNC (trans_selectall), (gpointer) tdata);
+		      GTK_SIGNAL_FUNC (gftpui_gtk_trans_selectall), (gpointer) tdata);
   gtk_widget_show (tempwid);
 
   tempwid = gtk_button_new_with_label (_("Deselect All"));
   gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);
   gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
-		      GTK_SIGNAL_FUNC (trans_unselectall), (gpointer) tdata);
+		      GTK_SIGNAL_FUNC (gftpui_gtk_trans_unselectall), (gpointer) tdata);
   gtk_widget_show (tempwid);
 
 #if GTK_MAJOR_VERSION == 1
@@ -334,8 +345,8 @@
   GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
 		      TRUE, TRUE, 0);
-  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (ok),
-		      (gpointer) tdata);
+  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
+                      GTK_SIGNAL_FUNC (gftpui_gtk_ok), (gpointer) tdata);
   gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
 			     GTK_SIGNAL_FUNC (gtk_widget_destroy),
 			     GTK_OBJECT (dialog));
@@ -347,14 +358,14 @@
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
 		      TRUE, TRUE, 0);
   gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
-		      GTK_SIGNAL_FUNC (cancel), (gpointer) tdata);
+		      GTK_SIGNAL_FUNC (gftpui_gtk_cancel), (gpointer) tdata);
   gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
 			     GTK_SIGNAL_FUNC (gtk_widget_destroy),
 			     GTK_OBJECT (dialog));
   gtk_widget_show (tempwid);
 #else
   g_signal_connect (GTK_OBJECT (dialog), "response",
-                    G_CALLBACK (transfer_action), (gpointer) tdata);
+                    G_CALLBACK (gftpui_gtk_transfer_action),(gpointer) tdata);
 #endif
 
   gtk_widget_show (dialog);