diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2012-08-24 17:50:49 +0100 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2012-08-24 17:50:49 +0100 |
commit | fb1dcb88fcc1a027da2f8e0ab1020afa1754ff3a (patch) | |
tree | b92039fb7ce211d671bee82fd19e86cd5313a77b | |
parent | 1ac547d2b0f8040bc56b3bd8f958871d0b670ffb (diff) |
fix seed ratio display
-rw-r--r-- | src/torrent-cell-renderer.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/torrent-cell-renderer.c b/src/torrent-cell-renderer.c index 3915ede..2efc4cc 100644 --- a/src/torrent-cell-renderer.c +++ b/src/torrent-cell-renderer.c @@ -541,12 +541,17 @@ static double get_percent_done( TorrentCellRenderer *r, gboolean * seed ) { struct TorrentCellRendererPrivate *priv = r->priv; - double d; + gdouble d; if( ( priv->flags & TORRENT_FLAG_SEEDING ) && getSeedRatio( r, &d ) ) { - *seed = TRUE; - d = MAX( 0.0, (priv->ratio/d)*100 ); + *seed = TRUE; + const gint64 baseline = priv->downloaded ? priv->downloaded : priv->sizeWhenDone; + const gint64 goal = baseline * priv->seedRatioLimit; + const gint64 bytesLeft = goal > priv->uploadedEver ? goal - priv->uploadedEver : 0; + float seedRatioPercentDone = (gdouble)(goal - bytesLeft) / goal; + + d = MAX( 0.0, seedRatioPercentDone*100.0 ); } else { |