summaryrefslogtreecommitdiff
path: root/src/torrent-cell-renderer.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-24 17:50:49 +0100
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-24 17:50:49 +0100
commitfb1dcb88fcc1a027da2f8e0ab1020afa1754ff3a (patch)
treeb92039fb7ce211d671bee82fd19e86cd5313a77b /src/torrent-cell-renderer.c
parent1ac547d2b0f8040bc56b3bd8f958871d0b670ffb (diff)
fix seed ratio display
Diffstat (limited to 'src/torrent-cell-renderer.c')
-rw-r--r--src/torrent-cell-renderer.c11
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
{