summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/requests.c2
-rw-r--r--src/torrent-cell-renderer.c157
-rw-r--r--src/torrent.c7
-rw-r--r--src/torrent.h3
-rw-r--r--src/trg-client.c15
-rw-r--r--src/trg-client.h2
-rw-r--r--src/trg-general-panel.c2
-rw-r--r--src/trg-main-window.c2
-rw-r--r--src/trg-torrent-model.c13
-rw-r--r--src/trg-torrent-model.h4
-rw-r--r--src/trg-torrent-tree-view.c14
-rw-r--r--src/trg-torrent-tree-view.h2
-rw-r--r--src/util.c5
-rw-r--r--src/util.h1
14 files changed, 173 insertions, 56 deletions
diff --git a/src/requests.c b/src/requests.c
index e5ec04d..d0e4222 100644
--- a/src/requests.c
+++ b/src/requests.c
@@ -170,7 +170,7 @@ JsonNode *torrent_get(gint64 id)
json_array_add_string_element(fields, FIELD_PEERS_GETTING_FROM_US);
json_array_add_string_element(fields, FIELD_PEERS_CONNECTED);
json_array_add_string_element(fields, FIELD_HAVEVALID);
- /* json_array_add_string_element(fields, FIELD_HAVEUNCHECKED); */
+ json_array_add_string_element(fields, FIELD_HAVEUNCHECKED);
json_array_add_string_element(fields, FIELD_RATEUPLOAD);
json_array_add_string_element(fields, FIELD_RATEDOWNLOAD);
json_array_add_string_element(fields, FIELD_STATUS);
diff --git a/src/torrent-cell-renderer.c b/src/torrent-cell-renderer.c
index 1d20f6f..bdac1d8 100644
--- a/src/torrent-cell-renderer.c
+++ b/src/torrent-cell-renderer.c
@@ -16,18 +16,25 @@
#include "hig.h"
#include "icons.h"
-#include "torrent-cell-renderer.h"
+#include "trg-client.h"
#include "torrent.h"
#include "util.h"
+#include "torrent-cell-renderer.h"
enum
{
P_STATUS = 1,
+ P_CLIENT,
P_RATIO,
+ P_SEEDRATIOLIMIT,
+ P_SEEDRATIOMODE,
P_DOWNLOADED,
+ P_HAVEVALID,
+ P_HAVEUNCHECKED,
P_ERROR,
P_NAME,
P_SIZEWHENDONE,
+ P_TOTALSIZE,
P_UPLOADED,
P_PERCENTCOMPLETE,
P_UPSPEED,
@@ -85,7 +92,10 @@ struct TorrentCellRendererPrivate
gint64 uploadedEver;
gint64 sizeWhenDone;
+ gint64 totalSize;
gint64 downloaded;
+ gint64 haveValid;
+ gint64 haveUnchecked;
gint64 upSpeed;
gint64 downSpeed;
gpointer json;
@@ -99,87 +109,103 @@ struct TorrentCellRendererPrivate
guint fileCount;
gint64 eta;
gint64 error;
+ gint64 seedRatioMode;
+ gdouble seedRatioLimit;
+ TrgClient *client;
gboolean compact;
};
+static gboolean getSeedRatio(TorrentCellRenderer *r, gdouble *ratio) {
+ struct TorrentCellRendererPrivate *p = r->priv;
+
+ if ((p->seedRatioMode == 0) && (trg_client_get_seed_ratio_limited(p->client) == TRUE)) {
+ *ratio = trg_client_get_seed_ratio_limit(p->client);
+ return TRUE;
+ } else if (p->seedRatioMode == 1) {
+ *ratio = p->seedRatioLimit;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
getProgressString( GString * gstr,
TorrentCellRenderer * r)
{
- struct TorrentCellRendererPrivate *priv = r->priv;
+ struct TorrentCellRendererPrivate *p = r->priv;
- //const int isSeed = st->haveValid >= info->totalSize;
+ const gint64 haveTotal = p->haveUnchecked + p->haveValid;
+ const int isSeed = p->haveValid >= p->totalSize;
char buf1[32], buf2[32], buf3[32], buf4[32], buf5[32], buf6[32];
- //double seedRatio;
- //const gboolean hasSeedRatio = tr_torrentGetSeedRatio( tor, &seedRatio );
+ double seedRatio;
+ const gboolean hasSeedRatio = getSeedRatio( r, &seedRatio );
- //TODO : use seed ratios
-
- if( priv->flags & TORRENT_FLAG_DOWNLOADING ) /* downloading */
+ if( p->flags & TORRENT_FLAG_DOWNLOADING ) /* downloading */
{
g_string_append_printf( gstr,
/* %1$s is how much we've got,
%2$s is how much we'll have when done,
%3$s%% is a percentage of the two */
- _( "%1$s of %2$s (%3$s%%)" ),
- tr_strlsize( buf1, priv->downloaded, sizeof( buf1 ) ),
- tr_strlsize( buf2, priv->sizeWhenDone, sizeof( buf2 ) ),
- tr_strlpercent( buf3, priv->done, sizeof( buf3 ) ) );
+ _( "%1$s of %2$s (%3$s)" ),
+ tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
+ tr_strlsize( buf2, p->sizeWhenDone, sizeof( buf2 ) ),
+ tr_strlpercent( buf3, p->done, sizeof( buf3 ) ) );
}
- /*else if( isSeed )
+ else if( isSeed )
{
if( hasSeedRatio )
{
g_string_append_printf( gstr,
- _( "%1$s of %2$s (%3$s%%), uploaded %4$s (Ratio: %5$s Goal: %6$s)" ),
+ _( "%1$s of %2$s (%3$s), uploaded %4$s (Ratio: %5$s Goal: %6$s)" ),
tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
- tr_strlsize( buf2, info->totalSize, sizeof( buf2 ) ),
- tr_strlpercent( buf3, st->percentComplete * 100.0, sizeof( buf3 ) ),
- tr_strlsize( buf4, st->uploadedEver, sizeof( buf4 ) ),
- tr_strlratio( buf5, st->ratio, sizeof( buf5 ) ),
+ tr_strlsize( buf2, p->totalSize, sizeof( buf2 ) ),
+ tr_strlpercent( buf3, p->done, sizeof( buf3 ) ),
+ tr_strlsize( buf4, p->uploadedEver, sizeof( buf4 ) ),
+ tr_strlratio( buf5, p->ratio, sizeof( buf5 ) ),
tr_strlratio( buf6, seedRatio, sizeof( buf6 ) ) );
}
else
{
g_string_append_printf( gstr,
- _( "%1$s of %2$s (%3$s%%), uploaded %4$s (Ratio: %5$s)" ),
- tr_strlsize( buf1, priv->downloaded, sizeof( buf1 ) ),
- tr_strlsize( buf2, priv->sizeWhenDone, sizeof( buf2 ) ),
- tr_strlpercent( buf3, priv->done, sizeof( buf3 ) ),
- tr_strlsize( buf4, priv->uploadedEver, sizeof( buf4 ) ),
- tr_strlratio( buf5, priv->ratio, sizeof( buf5 ) ) );
+ _( "%1$s of %2$s (%3$s), uploaded %4$s (Ratio: %5$s)" ),
+ tr_strlsize( buf1, haveTotal, sizeof( buf1 ) ),
+ tr_strlsize( buf2, p->totalSize, sizeof( buf2 ) ),
+ tr_strlpercent( buf3, p->done, sizeof( buf3 ) ),
+ tr_strlsize( buf4, p->uploadedEver, sizeof( buf4 ) ),
+ tr_strlratio( buf5, p->ratio, sizeof( buf5 ) ) );
}
- }*/
+ }
else /* seeding */
{
- /*if( hasSeedRatio )
+ if( hasSeedRatio )
{
g_string_append_printf( gstr,
_( "%1$s, uploaded %2$s (Ratio: %3$s Goal: %4$s)" ),
- tr_strlsize( buf1, info->totalSize, sizeof( buf1 ) ),
- tr_strlsize( buf2, st->uploadedEver, sizeof( buf2 ) ),
- tr_strlratio( buf3, st->ratio, sizeof( buf3 ) ),
+ tr_strlsize( buf1, p->totalSize, sizeof( buf1 ) ),
+ tr_strlsize( buf2, p->uploadedEver, sizeof( buf2 ) ),
+ tr_strlratio( buf3, p->ratio, sizeof( buf3 ) ),
tr_strlratio( buf4, seedRatio, sizeof( buf4 ) ) );
}
else
- { */
+ {
g_string_append_printf( gstr,
/* %1$s is the torrent's total size,
%2$s is how much we've uploaded,
%3$s is our upload-to-download ratio */
_( "%1$s, uploaded %2$s (Ratio: %3$s)" ),
- tr_strlsize( buf1, priv->sizeWhenDone, sizeof( buf1 ) ),
- tr_strlsize( buf2, priv->uploadedEver, sizeof( buf2 ) ),
- tr_strlratio( buf3, priv->ratio, sizeof( buf3 ) ) );
- //}
+ tr_strlsize( buf1, p->sizeWhenDone, sizeof( buf1 ) ),
+ tr_strlsize( buf2, p->uploadedEver, sizeof( buf2 ) ),
+ tr_strlratio( buf3, p->ratio, sizeof( buf3 ) ) );
+ }
}
/* add time when downloading */
- if( ( priv->flags & TORRENT_FLAG_DOWNLOADING ) )
- //|| ( hasSeedRatio && ( st->activity == TR_STATUS_SEED ) ) )
+ if( ( p->flags & TORRENT_FLAG_DOWNLOADING )
+ || ( hasSeedRatio && ( p->flags & TORRENT_FLAG_SEEDING ) ) )
{
- gint64 eta = priv->eta;
+ gint64 eta = p->eta;
g_string_append( gstr, " - " );
if( eta < 0 )
g_string_append( gstr, _( "Remaining time unknown" ) );
@@ -251,7 +277,7 @@ getShortStatusString( GString * gstr,
} else if (flags & TORRENT_FLAG_SEEDING_WAIT) {
g_string_append( gstr, _( "Queued for seeding" ) );
} else if (flags & TORRENT_FLAG_CHECKING) {
- g_string_append_printf( gstr, _( "Verifying data (%.1f%% tested)" ),
+ g_string_append_printf( gstr, _( "Verifying data (%.1f% tested)" ),
tr_truncd( priv->done * 100.0, 1 ) );
} else if ((flags & TORRENT_FLAG_DOWNLOADING) || (flags & TORRENT_FLAG_SEEDING)) {
char buf[512];
@@ -273,7 +299,6 @@ getStatusString( GString * gstr,
struct TorrentCellRendererPrivate *priv = r->priv;
//TODO: handle metadata for downloading
- //TODO: handle errors
if ( priv->error ) {
const char * fmt[] = { NULL, N_( "Tracker gave a warning: \"%s\"" ),
@@ -562,12 +587,21 @@ static void torrent_cell_renderer_set_property(GObject * object,
case P_STATUS:
p->flags = g_value_get_uint(v);
break;
+ case P_TOTALSIZE:
+ p->totalSize = g_value_get_int64(v);
+ break;
case P_SIZEWHENDONE:
p->sizeWhenDone = g_value_get_int64(v);
break;
case P_DOWNLOADED:
p->downloaded = g_value_get_int64(v);
break;
+ case P_HAVEVALID:
+ p->haveValid = g_value_get_int64(v);
+ break;
+ case P_HAVEUNCHECKED:
+ p->haveUnchecked = g_value_get_int64(v);
+ break;
case P_UPLOADED:
p->uploadedEver = g_value_get_int64(v);
break;
@@ -610,6 +644,15 @@ static void torrent_cell_renderer_set_property(GObject * object,
case P_COMPACT:
p->compact = g_value_get_boolean(v);
break;
+ case P_SEEDRATIOMODE:
+ p->seedRatioMode = g_value_get_int64(v);
+ break;
+ case P_SEEDRATIOLIMIT:
+ p->seedRatioLimit = g_value_get_double(v);
+ break;
+ case P_CLIENT:
+ p->client = g_value_get_pointer(v);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID( object, property_id, pspec);
break;
@@ -682,12 +725,30 @@ torrent_cell_renderer_class_init( TorrentCellRendererClass * klass )
"json",
G_PARAM_READWRITE ) );
+ g_object_class_install_property( gobject_class, P_CLIENT,
+ g_param_spec_pointer( "client", NULL,
+ "client",
+ G_PARAM_READWRITE ) );
+
+
g_object_class_install_property( gobject_class, P_RATIO,
g_param_spec_double( "ratio", NULL,
"ratio",
0, G_MAXDOUBLE, 0,
G_PARAM_READWRITE ) );
+ g_object_class_install_property( gobject_class, P_SEEDRATIOLIMIT,
+ g_param_spec_double( "seedRatioLimit", NULL,
+ "seedRatioLimit",
+ 0, G_MAXDOUBLE, 0,
+ G_PARAM_READWRITE ) );
+
+ g_object_class_install_property( gobject_class, P_SEEDRATIOMODE,
+ g_param_spec_int64( "seedRatioMode", NULL,
+ "seedRatioMode",
+ 0, 2, 0,
+ G_PARAM_READWRITE ) );
+
g_object_class_install_property( gobject_class, P_PERCENTCOMPLETE,
g_param_spec_double( "percentComplete", NULL,
"percentComplete",
@@ -695,6 +756,12 @@ torrent_cell_renderer_class_init( TorrentCellRendererClass * klass )
G_PARAM_READWRITE ) );
+ g_object_class_install_property( gobject_class, P_TOTALSIZE,
+ g_param_spec_int64( "totalSize", NULL,
+ "totalSize",
+ 0, G_MAXINT64, 0,
+ G_PARAM_READWRITE ) );
+
g_object_class_install_property( gobject_class, P_SIZEWHENDONE,
g_param_spec_int64( "sizeWhenDone", NULL,
"sizeWhenDone",
@@ -737,6 +804,18 @@ torrent_cell_renderer_class_init( TorrentCellRendererClass * klass )
0, G_MAXINT64, 0,
G_PARAM_READWRITE ) );
+ g_object_class_install_property( gobject_class, P_HAVEVALID,
+ g_param_spec_int64( "haveValid", NULL,
+ "haveValid",
+ 0, G_MAXINT64, 0,
+ G_PARAM_READWRITE ) );
+
+ g_object_class_install_property( gobject_class, P_HAVEUNCHECKED,
+ g_param_spec_int64( "haveUnchecked", NULL,
+ "haveUnchecked",
+ 0, G_MAXINT64, 0,
+ G_PARAM_READWRITE ) );
+
g_object_class_install_property( gobject_class, P_UPLOADED,
g_param_spec_int64( "uploaded", NULL,
"uploaded",
diff --git a/src/torrent.c b/src/torrent.c
index d605835..025118a 100644
--- a/src/torrent.c
+++ b/src/torrent.c
@@ -139,7 +139,12 @@ gboolean torrent_get_download_limited(JsonObject * t)
return json_object_get_boolean_member(t, FIELD_DOWNLOAD_LIMITED);
}
-gint64 torrent_get_size(JsonObject * t)
+gint64 torrent_get_total_size(JsonObject *t)
+{
+ return json_object_get_int_member(t, FIELD_TOTAL_SIZE);
+}
+
+gint64 torrent_get_size_when_done(JsonObject * t)
{
return json_object_get_int_member(t, FIELD_SIZEWHENDONE);
}
diff --git a/src/torrent.h b/src/torrent.h
index 1bafd14..163df39 100644
--- a/src/torrent.h
+++ b/src/torrent.h
@@ -44,7 +44,8 @@
#define TORRENT_ADD_FLAG_PAUSED (1 << 0) /* 0x01 */
#define TORRENT_ADD_FLAG_DELETE (1 << 1) /* 0x02 */
-gint64 torrent_get_size(JsonObject * t);
+gint64 torrent_get_total_size(JsonObject *t);
+gint64 torrent_get_size_when_done(JsonObject * t);
const gchar *torrent_get_name(JsonObject * t);
gint64 torrent_get_rate_down(JsonObject * t);
gint64 torrent_get_rate_up(JsonObject * t);
diff --git a/src/trg-client.c b/src/trg-client.c
index 77afe2d..970fb46 100644
--- a/src/trg-client.c
+++ b/src/trg-client.c
@@ -83,6 +83,8 @@ struct _TrgClientPrivate {
GPrivate *tlsKey;
gint configSerial;
GMutex *configMutex;
+ gboolean seedRatioLimited;
+ gdouble seedRatioLimit;
};
static void dispatch_async_threadfunc(trg_request * reqrsp,
@@ -203,6 +205,9 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session)
priv->session = session;
json_object_ref(session);
+ priv->seedRatioLimit = session_get_seed_ratio_limit(session);
+ priv->seedRatioLimited = session_get_seed_ratio_limited(session);
+
g_signal_emit(tc, signals[TC_SESSION_UPDATED], 0, session);
}
@@ -696,3 +701,13 @@ gboolean trg_client_update_session(TrgClient *tc, GSourceFunc callback, gpointer
return dispatch_async(tc, session_get(), callback,
data);
}
+
+gdouble trg_client_get_seed_ratio_limit(TrgClient *tc)
+{
+ return tc->priv->seedRatioLimit;
+}
+
+gboolean trg_client_get_seed_ratio_limited(TrgClient *tc)
+{
+ return tc->priv->seedRatioLimited;
+}
diff --git a/src/trg-client.h b/src/trg-client.h
index 490ac9c..dc234d6 100644
--- a/src/trg-client.h
+++ b/src/trg-client.h
@@ -161,6 +161,8 @@ void trg_client_reset_failcount(TrgClient * tc);
void trg_client_inc_serial(TrgClient * tc);
void trg_client_inc_connid(TrgClient * tc);
gboolean trg_client_update_session(TrgClient *tc, GSourceFunc callback, gpointer data);
+gboolean trg_client_get_seed_ratio_limited(TrgClient *tc);
+gdouble trg_client_get_seed_ratio_limit(TrgClient *tc);
G_END_DECLS
#endif /* _TRG_CLIENT_H_ */
diff --git a/src/trg-general-panel.c b/src/trg-general-panel.c
index 79df46d..6fbb7e7 100644
--- a/src/trg-general-panel.c
+++ b/src/trg-general-panel.c
@@ -128,7 +128,7 @@ trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t,
sizeOfBuf = sizeof(buf);
- trg_strlsize(buf, torrent_get_size(t));
+ trg_strlsize(buf, torrent_get_size_when_done(t));
gtk_label_set_text(GTK_LABEL(priv->gen_size_label), buf);
trg_strlspeed(buf, torrent_get_rate_down(t) / disk_K);
diff --git a/src/trg-main-window.c b/src/trg-main-window.c
index 3691828..5131a3c 100644
--- a/src/trg-main-window.c
+++ b/src/trg-main-window.c
@@ -1458,7 +1458,7 @@ static TrgTorrentTreeView
{
TrgMainWindowPrivate *priv = win->priv;
TrgTorrentTreeView *torrentTreeView =
- trg_torrent_tree_view_new(trg_client_get_prefs(priv->client),
+ trg_torrent_tree_view_new(priv->client,
model);
GtkTreeSelection *selection =
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index 60979aa..0499f05 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -22,7 +22,10 @@
#include <json-glib/json-glib.h>
#include <glib/gi18n.h>
+#ifdef HAVE_CONFIG_H
#include "config.h"
+#endif
+
#include "torrent.h"
#include "json.h"
#include "trg-torrent-model.h"
@@ -201,6 +204,8 @@ static void trg_torrent_model_init(TrgTorrentModel * self)
column_types[TORRENT_COLUMN_NAME] = G_TYPE_STRING;
column_types[TORRENT_COLUMN_ERROR] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_SIZEWHENDONE] = G_TYPE_INT64;
+ column_types[TORRENT_COLUMN_TOTALSIZE] = G_TYPE_INT64;
+ column_types[TORRENT_COLUMN_HAVE_UNCHECKED] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_PERCENTDONE] = G_TYPE_DOUBLE;
column_types[TORRENT_COLUMN_STATUS] = G_TYPE_STRING;
column_types[TORRENT_COLUMN_SEEDS] = G_TYPE_INT64;
@@ -229,6 +234,8 @@ static void trg_torrent_model_init(TrgTorrentModel * self)
column_types[TORRENT_COLUMN_FROMRESUME] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_FROMINCOMING] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_PEER_SOURCES] = G_TYPE_STRING;
+ column_types[TORRENT_COLUMN_SEED_RATIO_LIMIT] = G_TYPE_DOUBLE;
+ column_types[TORRENT_COLUMN_SEED_RATIO_MODE] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_PEERS_CONNECTED] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_PEERS_FROM_US] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_PEERS_TO_US] = G_TYPE_INT64;
@@ -478,7 +485,7 @@ update_torrent_iter(TrgTorrentModel * model,
TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t),
TORRENT_COLUMN_NAME, torrent_get_name(t),
TORRENT_COLUMN_ERROR, torrent_get_error(t),
- TORRENT_COLUMN_SIZEWHENDONE, torrent_get_size(t),
+ TORRENT_COLUMN_SIZEWHENDONE, torrent_get_size_when_done(t),
TORRENT_COLUMN_PERCENTDONE,
(newFlags & TORRENT_FLAG_CHECKING) ?
torrent_get_recheck_progress(t)
@@ -489,6 +496,8 @@ update_torrent_iter(TrgTorrentModel * model,
TORRENT_COLUMN_UPSPEED, upRate, TORRENT_COLUMN_ETA,
torrent_get_eta(t), TORRENT_COLUMN_UPLOADED,
uploaded, TORRENT_COLUMN_DOWNLOADED, downloaded,
+ TORRENT_COLUMN_TOTALSIZE, torrent_get_total_size(t),
+ TORRENT_COLUMN_HAVE_UNCHECKED, torrent_get_have_unchecked(t),
TORRENT_COLUMN_HAVE_VALID, haveValid,
TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf),
TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf),
@@ -507,6 +516,8 @@ update_torrent_iter(TrgTorrentModel * model,
torrent_get_peers_getting_from_us(t),
TORRENT_COLUMN_QUEUE_POSITION,
torrent_get_queue_position(t),
+ TORRENT_COLUMN_SEED_RATIO_LIMIT, torrent_get_seed_ratio_limit(t),
+ TORRENT_COLUMN_SEED_RATIO_MODE, torrent_get_seed_ratio_mode(t),
TORRENT_COLUMN_LASTACTIVE,
torrent_get_activity_date(t), TORRENT_COLUMN_RATIO,
uploaded > 0
diff --git a/src/trg-torrent-model.h b/src/trg-torrent-model.h
index 7869da9..0367206 100644
--- a/src/trg-torrent-model.h
+++ b/src/trg-torrent-model.h
@@ -118,6 +118,8 @@ enum {
TORRENT_COLUMN_ETA,
TORRENT_COLUMN_UPLOADED,
TORRENT_COLUMN_DOWNLOADED,
+ TORRENT_COLUMN_TOTALSIZE,
+ TORRENT_COLUMN_HAVE_UNCHECKED,
TORRENT_COLUMN_HAVE_VALID,
TORRENT_COLUMN_RATIO,
TORRENT_COLUMN_ADDED,
@@ -141,6 +143,8 @@ enum {
TORRENT_COLUMN_LASTACTIVE,
TORRENT_COLUMN_FILECOUNT,
TORRENT_COLUMN_ERROR,
+ TORRENT_COLUMN_SEED_RATIO_MODE,
+ TORRENT_COLUMN_SEED_RATIO_LIMIT,
TORRENT_COLUMN_COLUMNS
};
diff --git a/src/trg-torrent-tree-view.c b/src/trg-torrent-tree-view.c
index 8eba1bf..c181e4d 100644
--- a/src/trg-torrent-tree-view.c
+++ b/src/trg-torrent-tree-view.c
@@ -163,7 +163,7 @@ JsonArray *build_json_id_array(TrgTorrentTreeView * tv)
return ids;
}
-static void setup_classic_layout(TrgTorrentTreeView *tv)
+static void setup_classic_layout(TrgClient *tc, TrgTorrentTreeView *tv)
{
GtkCellRenderer *renderer = torrent_cell_renderer_new();
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes("",
@@ -171,8 +171,10 @@ static void setup_classic_layout(TrgTorrentTreeView *tv)
"status", TORRENT_COLUMN_FLAGS,
"error", TORRENT_COLUMN_ERROR,
"fileCount", TORRENT_COLUMN_FILECOUNT,
+ "totalSize", TORRENT_COLUMN_TOTALSIZE,
"ratio", TORRENT_COLUMN_RATIO,
"downloaded", TORRENT_COLUMN_DOWNLOADED,
+ "haveValid", TORRENT_COLUMN_HAVE_VALID,
"sizeWhenDone", TORRENT_COLUMN_SIZEWHENDONE,
"uploaded", TORRENT_COLUMN_UPLOADED,
"percentComplete", TORRENT_COLUMN_PERCENTDONE,
@@ -182,9 +184,13 @@ static void setup_classic_layout(TrgTorrentTreeView *tv)
"peersGettingFromUs", TORRENT_COLUMN_PEERS_FROM_US,
"eta", TORRENT_COLUMN_ETA,
"json", TORRENT_COLUMN_JSON,
+ "seedRatioMode", TORRENT_COLUMN_SEED_RATIO_MODE,
+ "seedRatioLimit", TORRENT_COLUMN_SEED_RATIO_LIMIT,
"connected", TORRENT_COLUMN_PEERS_CONNECTED,
NULL);
+ g_object_set(G_OBJECT(renderer), "client", tv, NULL);
+
//gtk_tree_view_column_set_min_width(column, 0);
gtk_tree_view_column_set_resizable(column, FALSE);
gtk_tree_view_column_set_reorderable(column, FALSE);
@@ -197,15 +203,15 @@ static void setup_classic_layout(TrgTorrentTreeView *tv)
gtk_tree_view_append_column(GTK_TREE_VIEW(tv), column);
}
-TrgTorrentTreeView *trg_torrent_tree_view_new(TrgPrefs * prefs,
+TrgTorrentTreeView *trg_torrent_tree_view_new(TrgClient *tc,
GtkTreeModel * model)
{
GObject *obj = g_object_new(TRG_TYPE_TORRENT_TREE_VIEW, NULL);
- trg_tree_view_set_prefs(TRG_TREE_VIEW(obj), prefs);
+ trg_tree_view_set_prefs(TRG_TREE_VIEW(obj), trg_client_get_prefs(tc));
gtk_tree_view_set_model(GTK_TREE_VIEW(obj), model);
//trg_tree_view_setup_columns(TRG_TREE_VIEW(obj));
- setup_classic_layout(TRG_TORRENT_TREE_VIEW(obj));
+ setup_classic_layout(tc, TRG_TORRENT_TREE_VIEW(obj));
trg_tree_view_restore_sort(TRG_TREE_VIEW(obj), TRUE);
diff --git a/src/trg-torrent-tree-view.h b/src/trg-torrent-tree-view.h
index f26ec77..4f70c75 100644
--- a/src/trg-torrent-tree-view.h
+++ b/src/trg-torrent-tree-view.h
@@ -50,7 +50,7 @@ typedef struct {
GType trg_torrent_tree_view_get_type(void);
-TrgTorrentTreeView *trg_torrent_tree_view_new(TrgPrefs * prefs,
+TrgTorrentTreeView *trg_torrent_tree_view_new(TrgClient *tc,
GtkTreeModel * model);
JsonArray *build_json_id_array(TrgTorrentTreeView * tv);
diff --git a/src/util.c b/src/util.c
index 37a0bf8..a7d0215 100644
--- a/src/util.c
+++ b/src/util.c
@@ -357,11 +357,6 @@ gchar *make_error_message(JsonObject * response, int status)
char *tr_strlpercent(char *buf, double x, size_t buflen)
{
- return tr_strpercent(buf, x, buflen);
-}
-
-char *tr_strpercent(char *buf, double x, size_t buflen)
-{
int precision;
if (x < 10.0)
precision = 2;
diff --git a/src/util.h b/src/util.h
index 25da404..adef7cf 100644
--- a/src/util.h
+++ b/src/util.h
@@ -72,7 +72,6 @@ char *tr_formatter_speed_KBps(char *buf, double KBps, size_t buflen);
char *tr_strltime_long(char *buf, long seconds, size_t buflen);
gchar *epoch_to_string(gint64 epoch);
char *tr_strltime_short(char *buf, long seconds, size_t buflen);
-char *tr_strpercent(char *buf, double x, size_t buflen);
char *tr_strlpercent(char *buf, double x, size_t buflen);
char *tr_strratio(char *buf, size_t buflen, double ratio,
const char *infinity);