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")); }
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); }
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); }
/* 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; }
/* * 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); } }
/* * 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; }
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); }