Example #1
0
void
remove_file_transfer (gpointer data)
{
  gftpui_common_curtrans_data * transdata;
  GtkCTreeNode * node;
  gftp_file * curfle;

  if (GTK_CLIST (dlwdw)->selection == NULL)
    {
      ftp_log (gftp_logging_error, NULL,
              _("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);

  if (transdata->curfle == NULL || transdata->curfle->data == NULL)
    return;

  curfle = transdata->curfle->data;
  gftpui_common_skip_file_transfer (transdata->transfer, curfle);

  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), curfle->user_data, 1,
                           _("Skipped"));
}
Example #2
0
static void
create_transfer (gftp_transfer * tdata)
{
  if (tdata->fromreq->stopable)
    return;

  if (GFTP_IS_SAME_HOST_START_TRANS ((gftp_window_data *) tdata->fromwdata,
                                     tdata->fromreq))
    {
      gftp_swap_socks (tdata->fromreq, 
                       ((gftp_window_data *) tdata->fromwdata)->request);
      update_window (tdata->fromwdata);
    }

  if (GFTP_IS_SAME_HOST_START_TRANS ((gftp_window_data *) tdata->towdata,
                                     tdata->toreq))
    {
      gftp_swap_socks (tdata->toreq, 
                       ((gftp_window_data *) tdata->towdata)->request);
      update_window (tdata->towdata);
    }

  num_transfers_in_progress++;
  tdata->started = 1;
  tdata->stalled = 1;
  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tdata->user_data, 1,
                           _("Connecting..."));

  if (tdata->thread_id == NULL)
    tdata->thread_id = g_malloc0 (sizeof (pthread_t));

  pthread_create (tdata->thread_id, NULL, _gftpui_transfer_files, tdata);
}
Example #3
0
static void
on_next_transfer (gftp_transfer * tdata)
{
  intptr_t refresh_files;
  gftp_file * tempfle;

  tdata->next_file = 0;
  for (; tdata->updfle != tdata->curfle; tdata->updfle = tdata->updfle->next)
    {
      tempfle = tdata->updfle->data;

      if (tempfle->done_view || tempfle->done_edit)
        {
          if (tempfle->transfer_action != GFTP_TRANS_ACTION_SKIP)
            {
              view_file (tempfle->destfile, 0, tempfle->done_view,
                         tempfle->done_rm, 1, 0, tempfle->file, NULL);
            }
        }
      else if (tempfle->done_rm)
	tdata->fromreq->rmfile (tdata->fromreq, tempfle->file);
      
      if (tempfle->transfer_action == GFTP_TRANS_ACTION_SKIP)
        gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tempfle->user_data, 1,
  			         _("Skipped"));
      else
        gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tempfle->user_data, 1,
  			         _("Finished"));
    }

  gftp_lookup_request_option (tdata->fromreq, "refresh_files", &refresh_files);

  if (refresh_files && tdata->curfle && tdata->curfle->next &&
      compare_request (tdata->toreq, 
                       ((gftp_window_data *) tdata->towdata)->request, 1))
    gftpui_refresh (tdata->towdata, 1);
}
Example #4
0
/* Set the text in a node. */
int
clip_GTK_CTREENODESETTEXT(ClipMachine * cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	gint        column = _clip_parni(cm,3);
	gchar        *text = _clip_parc(cm,4);
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT(3,NUMERIC_t); CHECKOPT(4,CHARACTER_t);
	if (_clip_parinfo(cm,3)==UNDEF_t) column = 1;
	if (_clip_parinfo(cm,4)==UNDEF_t) text = "";
	LOCALE_TO_UTF(text);
	gtk_ctree_node_set_text(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object), column-1,text);
	FREE_TEXT(text);
	return 0;
err:
	return 1;
}
Example #5
0
/*
 * Update an existing symbol node.
 */
static void
gdisp_updateSymbolNode ( Kernel_T  *kernel,
			 GtkWidget *cTree,
			 Symbol_T  *symbol )
{

  GtkCTreeNode *referenceNode = (GtkCTreeNode*)NULL;
  GString      *messageString =      (GString*)NULL;
  gchar         buffer[128];

  /*
   * The reference information is the only one to be refreshed.
   * Get back the reference node.
   */
  referenceNode = gdisp_getChildAccordingToItsName(kernel,
						   symbol->sNode,
						   "sReference");

  if (referenceNode == (GtkCTreeNode*)NULL) {

    /* should never happen, because I did create this node !! */
    messageString = g_string_new((gchar*)NULL);
    g_string_sprintf(messageString,
		     "%s symbol has no reference node.",
		     symbol->sInfo.name);
    (*kernel->outputFunc)(kernel,messageString,GD_ERROR);

  }
  else {

    sprintf(buffer,"%d",symbol->sReference);
    gtk_ctree_node_set_text(GTK_CTREE(cTree),
			    referenceNode,
			    1, /* column */
			    buffer);

  }

}
Example #6
0
/*
 * Create a node that will contain all provider information.
 */
static void
gdisp_createProviderNode(Kernel_T      *kernel,
			 GtkWidget     *parent,
			 GtkWidget     *tree,
			 Provider_T    *provider,
			 GtkCTreeNode **providerNode,
			 GtkCTreeNode **sampledSymbolNode)
{

  gchar        *pNames [GD_TREE_NB_COLUMNS] = { (gchar*)NULL,  (gchar*)NULL };
  GtkCTreeNode *iNode                       = (GtkCTreeNode*)NULL;
  GtkCTreeNode *sNode                       = (GtkCTreeNode*)NULL;
  Pixmap_T     *pPixmap                     = (Pixmap_T*)NULL;

  /*
   * The name of the node is the URL of the provider.
   * Get back provider pixmap according to its identity.
   */
  pNames[0] = provider->pUrl->str;

  pPixmap = gdisp_getProviderIdPixmap(kernel,
				      parent,
				      provider->pIdentity);

  provider->pNode = gtk_ctree_insert_node(GTK_CTREE(tree),
					  (GtkCTreeNode*)NULL, /* parent  */
					  (GtkCTreeNode*)NULL, /* sibling */
					  pNames,
					  GD_TREE_SPACING,
					  pPixmap->pixmap,
					  pPixmap->mask,
					  pPixmap->pixmap,
					  pPixmap->mask,
					  FALSE, /* is a leave  */
					  TRUE); /* is expanded */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      provider->pNode,
			      (gpointer)provider);

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				provider->pNode,
				FALSE); /* not selectable */

  /*
   * Insert information node.
   */
  pNames[0] = "Information";

  pPixmap = gdisp_getPixmapById(kernel,
				GD_PIX_info,
				parent);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				provider->pNode, /* provider is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				pNames,
				GD_TREE_SPACING,
				pPixmap->pixmap,
				pPixmap->mask,
				pPixmap->pixmap,
				pPixmap->mask,
  /* FIXME for the moment */    TRUE, /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */

  /*
   * Insert sampled symbol node.
   */
  pNames[0] = "Sampled Symbols";
  sNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				provider->pNode, /* provider is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				pNames,
				GD_TREE_SPACING,
				kernel->widgets.collapsedNodePixmap->pixmap,
				kernel->widgets.collapsedNodePixmap->mask,
				kernel->widgets.expandedNodePixmap->pixmap,
				kernel->widgets.expandedNodePixmap->mask,
				FALSE, /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      sNode,
			      (gpointer)"sAnchor");

  gtk_ctree_node_set_text(GTK_CTREE(tree),
			  sNode,
			  0, /* column */
			  pNames[0]);

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				sNode,
				FALSE); /* not selectable */

  if (gdisp_getProviderNumber(kernel) == 1) {

    /*
     * Expand that node if there is only one provider.
     */
    gtk_ctree_expand(GTK_CTREE(tree),sNode);

  }

  /*
   * Return.
   */
  *providerNode      = provider->pNode;
  *sampledSymbolNode = sNode;

}
Example #7
0
static void
update_file_status (gftp_transfer * tdata)
{
  char totstr[150], winstr[150], dlstr[150];
  unsigned long remaining_secs, lkbs;
  int hours, mins, secs, pcent;
  intptr_t show_trans_in_title;
  gftp_file * tempfle;
  
  g_static_mutex_lock (&tdata->statmutex);
  tempfle = tdata->curfle->data;

  remaining_secs = (tdata->total_bytes - tdata->trans_bytes - tdata->resumed_bytes) / 1024;

  lkbs = (unsigned long) tdata->kbs;
  if (lkbs > 0)
    remaining_secs /= lkbs;

  hours = remaining_secs / 3600;
  remaining_secs -= hours * 3600;
  mins = remaining_secs / 60;
  remaining_secs -= mins * 60;
  secs = remaining_secs;

  if (hours < 0 || mins < 0 || secs < 0)
    {
      g_static_mutex_unlock (&tdata->statmutex);
      return;
    }

  if ((double) tdata->total_bytes > 0)
    pcent = (int) ((double) (tdata->trans_bytes + tdata->resumed_bytes) / (double) tdata->total_bytes * 100.0);
  else
    pcent = 0;

  if (pcent > 100)
    g_snprintf (totstr, sizeof (totstr),
	_("Unknown percentage complete. (File %ld of %ld)"),
	tdata->current_file_number, tdata->numdirs + tdata->numfiles);
  else
    g_snprintf (totstr, sizeof (totstr),
	_("%d%% complete, %02d:%02d:%02d est. time remaining. (File %ld of %ld)"),
	pcent, hours, mins, secs, tdata->current_file_number,
	tdata->numdirs + tdata->numfiles);

  *dlstr = '\0';
  if (!tdata->stalled)
    _setup_dlstr (tdata, tempfle, dlstr, sizeof (dlstr));

  g_static_mutex_unlock (&tdata->statmutex);

  gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tdata->user_data, 1, totstr);
  
  gftp_lookup_global_option ("show_trans_in_title", &show_trans_in_title);
  if (gftp_file_transfers->data == tdata && show_trans_in_title)
    {
      g_snprintf (winstr, sizeof(winstr),  "%s: %s", gftp_version, totstr);
      gdk_window_set_title (gtk_widget_get_parent_window (GTK_WIDGET(dlwdw)),
                            winstr);
    }

  if (*dlstr != '\0')
    gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tempfle->user_data, 1, dlstr);
}