diff src/gtk/transfer.c @ 819:d6fdfcbdb056

2006-10-1 Brian Masney <masneyb@gftp.org> * src/gtk/transfer.c src/uicommon/gftpui.c src/uicommon/gftpui.h - added new functions for canceling and skipping file transfers
author masneyb
date Sun, 01 Oct 2006 17:57:46 +0000
parents fbc903d84577
children 74f49d528c68
line wrap: on
line diff
--- a/src/gtk/transfer.c	Tue Sep 26 11:48:55 2006 +0000
+++ b/src/gtk/transfer.c	Sun Oct 01 17:57:46 2006 +0000
@@ -484,22 +484,7 @@
   if (tdata->fromreq->stopable == 0)
     return;
 
-  g_static_mutex_lock (&tdata->structmutex);
-  if (tdata->started)
-    {
-      tdata->cancel = 1;
-      tdata->fromreq->cancel = 1;
-      tdata->toreq->cancel = 1;
-    }
-  else
-    tdata->done = 1;
-
-  tdata->fromreq->stopable = 0;
-  tdata->toreq->stopable = 0;
-  g_static_mutex_unlock (&tdata->structmutex);
-
-  ftp_log (gftp_logging_misc, NULL, _("Stopping the transfer of %s\n"),
-	   ((gftp_file *) tdata->curfle->data)->file);
+  gftpui_common_cancel_file_transfer (tdata);
 }
 
 
@@ -941,23 +926,10 @@
 	      _("There are no file transfers selected\n"));
       return;
     }
+
   node = GTK_CLIST (dlwdw)->selection->data;
   transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), node);
-
-  g_static_mutex_lock (&transdata->transfer->structmutex);
-  if (transdata->transfer->started)
-    {
-      transdata->transfer->cancel = 1;
-      transdata->transfer->fromreq->cancel = 1;
-      transdata->transfer->toreq->cancel = 1;
-      transdata->transfer->skip_file = 0;
-    }
-  else
-    transdata->transfer->done = 1;
-  g_static_mutex_unlock (&transdata->transfer->structmutex);
-
-  ftp_log (gftp_logging_misc, NULL, _("Stopping the transfer on host %s\n"),
-	   transdata->transfer->fromreq->hostname);
+  gftpui_common_cancel_file_transfer (transdata->transfer);
 }
 
 
@@ -975,30 +947,12 @@
 	      _("There are no file transfers selected\n"));
       return;
     }
+
   node = GTK_CLIST (dlwdw)->selection->data;
   transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), node);
 
-  g_static_mutex_lock (&transdata->transfer->structmutex);
-  if (transdata->transfer->curfle != NULL)
-    {
-      curfle = transdata->transfer->curfle->data;
-      if (transdata->transfer->started)
-        {
-          transdata->transfer->cancel = 1;
-          transdata->transfer->fromreq->cancel = 1;
-          transdata->transfer->toreq->cancel = 1;
-          transdata->transfer->skip_file = 1;
-        }
-
-      curfle->transfer_action = GFTP_TRANS_ACTION_SKIP;
-      file = curfle->file;
-    }
-  else
-    file = NULL;
-  g_static_mutex_unlock (&transdata->transfer->structmutex);
-
-  ftp_log (gftp_logging_misc, NULL, _("Skipping file %s on host %s\n"), 
-           file, transdata->transfer->fromreq->hostname);
+  gftpui_common_skip_file_transfer (transdata->transfer,
+                                    transdata->transfer->curfle->data);
 }
 
 
@@ -1019,39 +973,14 @@
   node = GTK_CLIST (dlwdw)->selection->data;
   transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), node);
 
-
   if (transdata->curfle == NULL || transdata->curfle->data == NULL)
     return;
 
   curfle = transdata->curfle->data;
-
-  if (curfle->transfer_action & GFTP_TRANS_ACTION_SKIP)
-    return;
-
-  g_static_mutex_lock (&transdata->transfer->structmutex);
-
-  curfle->transfer_action = GFTP_TRANS_ACTION_SKIP;
+  gftpui_common_skip_file_transfer (transdata->transfer, curfle);
 
-  if (transdata->transfer->started &&
-      transdata->curfle == transdata->transfer->curfle)
-    {
-      transdata->transfer->cancel = 1;
-      transdata->transfer->fromreq->cancel = 1;
-      transdata->transfer->toreq->cancel = 1;
-      transdata->transfer->skip_file = 1;
-    }
-  else if (transdata->curfle != transdata->transfer->curfle &&
-           !curfle->transfer_done)
-    {
-      gtk_ctree_node_set_text (GTK_CTREE (dlwdw), curfle->user_data, 1,
-                               _("Skipped"));
-      transdata->transfer->total_bytes -= curfle->size;
-    }
-
-  g_static_mutex_unlock (&transdata->transfer->structmutex);
-
-  ftp_log (gftp_logging_misc, NULL, _("Skipping file %s on host %s\n"),
-           curfle->file, transdata->transfer->fromreq->hostname);
+  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), curfle->user_data, 1,
+                           _("Skipped"));
 }