X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=clients%2Fgui-shell%2Fdsh.c;h=652e45e2dbd4fc3a6dadf863214b675df78e461f;hb=05ac1f105db40c360508f324dd1af7f828024e94;hp=48d67e91728c42a17f655226b94dc6d86d06769e;hpb=f782eb973d16b411ff67a743829d16cbd51427b4;p=doldaconnect.git diff --git a/clients/gui-shell/dsh.c b/clients/gui-shell/dsh.c index 48d67e9..652e45e 100644 --- a/clients/gui-shell/dsh.c +++ b/clients/gui-shell/dsh.c @@ -48,6 +48,7 @@ struct trinfo { int ostate; int opos, spos, speed; time_t lastprog; + int warned; double sprog; }; @@ -233,7 +234,7 @@ void updatetooltip(void) if(t > 0) bprintf(buf, " (%i/%i)", i, a); if(bt > 0) - bprintf(buf, ", %.1f%%", (double)bc / (double)bt); + bprintf(buf, ", %.1f%%", ((double)bc / (double)bt) * 100.0); if(st != -1) bprintf(buf, ", %s/s", bytes2si(st)); addtobuf(buf, 0); @@ -287,11 +288,14 @@ void updatetrinfo(void) if(tri->opos != tr->curpos) { tri->opos = tr->curpos; tri->lastprog = now; + tri->warned = 0; } -#ifdef NOTIFY - if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600)) { - if(dcpid == 0) +#ifdef HAVE_NOTIFY + if((tr->state = DC_TRNS_MAIN) && (now - tri->lastprog > 600) && !tri->warned) { + if(dcpid == 0) { notify(&trnote, "transfer.error", _("Transfer stalled"), _("The transfer of %ls from %ls has not made progress for 10 minutes"), getfilename(tr->path), tr->peernick); + tri->warned = 1; + } } #endif if((tr->state == DC_TRNS_MAIN) && (dnow - tri->sprog > 10)) {