From 0c095756cfd2f771ecf762ff15220311c0e6fa39 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Fri, 31 Aug 2007 03:36:19 +0200 Subject: [PATCH] Display transfer doneage in dsh. --- clients/gui-shell/dsh.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/clients/gui-shell/dsh.c b/clients/gui-shell/dsh.c index 41291e9..e5310cd 100644 --- a/clients/gui-shell/dsh.c +++ b/clients/gui-shell/dsh.c @@ -200,12 +200,12 @@ void updatetooltip(void) { struct dc_transfer *tr; struct trinfo *tri; - int t, i, a, st; + int t, i, a, st, bc, bt; char *buf; size_t bufsize, bufdata; t = i = a = 0; - st = -1; + st = bc = bt = -1; for(tr = dc_transfers; tr != NULL; tr = tr->next) { if(tr->dir != DC_TRNSD_DOWN) continue; @@ -215,10 +215,16 @@ void updatetooltip(void) i++; else if((tr->state == DC_TRNS_HS) || (tr->state == DC_TRNS_MAIN)) a++; - if((tr->state == DC_TRNS_MAIN) && (tri->speed != -1)) { - if(st == -1) - st = 0; - st += tri->speed; + if((tr->state == DC_TRNS_MAIN)) { + if(bt == -1) + bc = bt = 0; + bc += tr->curpos; + bt += tr->size; + if(tri->speed != -1) { + if(st == -1) + st = 0; + st += tri->speed; + } } } buf = NULL; @@ -226,9 +232,10 @@ void updatetooltip(void) bprintf(buf, "Transfers: %i", t); if(t > 0) bprintf(buf, " (%i/%i)", i, a); - if(st != -1) { + if(bt > 0) + bprintf(buf, ", %.1f%%", (double)bc / (double)bt); + if(st != -1) bprintf(buf, ", %s/s", bytes2si(st)); - } addtobuf(buf, 0); gtk_status_icon_set_tooltip(tray, buf); free(buf); -- 2.11.0