diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/requests.c | 2 | ||||
-rw-r--r-- | src/torrent-cell-renderer.c | 157 | ||||
-rw-r--r-- | src/torrent.c | 7 | ||||
-rw-r--r-- | src/torrent.h | 3 | ||||
-rw-r--r-- | src/trg-client.c | 15 | ||||
-rw-r--r-- | src/trg-client.h | 2 | ||||
-rw-r--r-- | src/trg-general-panel.c | 2 | ||||
-rw-r--r-- | src/trg-main-window.c | 2 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 13 | ||||
-rw-r--r-- | src/trg-torrent-model.h | 4 | ||||
-rw-r--r-- | src/trg-torrent-tree-view.c | 14 | ||||
-rw-r--r-- | src/trg-torrent-tree-view.h | 2 | ||||
-rw-r--r-- | src/util.c | 5 | ||||
-rw-r--r-- | src/util.h | 1 |
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); @@ -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; @@ -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); |