diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-09-07 09:45:25 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-09-07 09:45:25 +0000 |
commit | 8d77cf1f3f90bad05ad97802febd3fe3c34391fc (patch) | |
tree | 444b5916f3b1eaede8017c873acaaa525ecebb86 /src | |
parent | 63a21ca01ccc921fa323dbfced2eb84bceef791a (diff) |
issue 47 - add non-default column to display number of PEX and DHT peers to torrent treeview
Diffstat (limited to 'src')
-rw-r--r-- | src/protocol-constants.h | 1 | ||||
-rw-r--r-- | src/requests.c | 1 | ||||
-rw-r--r-- | src/torrent.c | 5 | ||||
-rw-r--r-- | src/torrent.h | 1 | ||||
-rw-r--r-- | src/tpeer.c | 14 | ||||
-rw-r--r-- | src/tpeer.h | 7 | ||||
-rw-r--r-- | src/trg-status-bar.c | 4 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 11 | ||||
-rw-r--r-- | src/trg-torrent-model.h | 2 | ||||
-rw-r--r-- | src/trg-torrent-tree-view.c | 6 |
10 files changed, 44 insertions, 8 deletions
diff --git a/src/protocol-constants.h b/src/protocol-constants.h index e28cf05..a22e12d 100644 --- a/src/protocol-constants.h +++ b/src/protocol-constants.h @@ -55,6 +55,7 @@ #define FIELD_HAVEUNCHECKED "haveUnchecked" #define FIELD_PERCENTDONE "percentDone" #define FIELD_PEERS "peers" +#define FIELD_PEERSFROM "peersFrom" #define FIELD_FILES "files" #define FIELD_WANTED "wanted" #define FIELD_PRIORITIES "priorities" diff --git a/src/requests.c b/src/requests.c index a38e3ef..7a38806 100644 --- a/src/requests.c +++ b/src/requests.c @@ -129,6 +129,7 @@ JsonNode *torrent_get(gint64 id) json_array_add_string_element(fields, FIELD_ETA); json_array_add_string_element(fields, FIELD_PEERS); + json_array_add_string_element(fields, FIELD_PEERSFROM); json_array_add_string_element(fields, FIELD_FILES); json_array_add_string_element(fields, FIELD_HAVEVALID); json_array_add_string_element(fields, FIELD_HAVEUNCHECKED); diff --git a/src/torrent.c b/src/torrent.c index bdd6d75..98eb687 100644 --- a/src/torrent.c +++ b/src/torrent.c @@ -32,6 +32,11 @@ JsonArray *torrent_get_peers(JsonObject * t) return json_object_get_array_member(t, FIELD_PEERS); } +JsonObject *torrent_get_peersfrom(JsonObject * t) +{ + return json_object_get_object_member(t, FIELD_PEERSFROM); +} + JsonArray *torrent_get_wanted(JsonObject * t) { return json_object_get_array_member(t, FIELD_WANTED); diff --git a/src/torrent.h b/src/torrent.h index d3bf90c..44e15f5 100644 --- a/src/torrent.h +++ b/src/torrent.h @@ -58,6 +58,7 @@ gchar *torrent_get_status_string(gint64 rpcv, gint64 value); gchar *torrent_get_status_icon(gint64 rpcv, guint flags); guint32 torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status, gint64 downRate, gint64 upRate); JsonArray *torrent_get_peers(JsonObject * t); +JsonObject *torrent_get_peersfrom(JsonObject * t); JsonArray *torrent_get_tracker_stats(JsonObject * t); JsonArray *torrent_get_wanted(JsonObject * t); JsonArray *torrent_get_priorities(JsonObject * t); diff --git a/src/tpeer.c b/src/tpeer.c index 1941d14..a0cbe6c 100644 --- a/src/tpeer.c +++ b/src/tpeer.c @@ -52,9 +52,19 @@ gdouble peer_get_progress(JsonObject * p) { } gint64 peer_get_rate_to_client(JsonObject * p) { - return json_node_get_int(json_object_get_member(p, TPEER_RATE_TO_CLIENT)); + return json_object_get_int_member(p, TPEER_RATE_TO_CLIENT); } gint64 peer_get_rate_to_peer(JsonObject * p) { - return json_node_get_int(json_object_get_member(p, TPEER_RATE_TO_PEER)); + return json_object_get_int_member(p, TPEER_RATE_TO_PEER); +} + +gint64 peerfrom_get_pex(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMPEX); +} + +gint64 peerfrom_get_dht(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMDHT); } diff --git a/src/tpeer.h b/src/tpeer.h index 4c41c9f..bc7852e 100644 --- a/src/tpeer.h +++ b/src/tpeer.h @@ -31,9 +31,11 @@ #define TPEER_IS_ENCRYPTED "isEncrypted" #define TPEER_IS_DOWNLOADING_FROM "isDownloadingFrom" #define TPEER_IS_UPLOADING_TO "isUploadingTo" - #define TPEER_FLAGSTR "flagStr" +#define TPEERFROM_FROMPEX "fromPex" +#define TPEERFROM_FROMDHT "fromDht" + const gchar *peer_get_address(JsonObject * p); const gchar *peer_get_client_name(JsonObject * p); gboolean peer_get_is_encrypted(JsonObject * p); @@ -44,4 +46,7 @@ gint64 peer_get_rate_to_peer(JsonObject * p); gboolean peer_get_is_uploading_to(JsonObject * p); gboolean peer_get_is_downloading_from(JsonObject * p); +gint64 peerfrom_get_pex(JsonObject *pf); +gint64 peerfrom_get_dht(JsonObject *pf); + #endif /* TPEER_H_ */ diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c index 42dacd1..7df8069 100644 --- a/src/trg-status-bar.c +++ b/src/trg-status-bar.c @@ -103,9 +103,6 @@ void trg_status_bar_session_update(TrgStatusBar *sb, JsonObject *session) } else { gtk_label_set_text(GTK_LABEL(priv->free_lbl), ""); } - - - } void trg_status_bar_update(TrgStatusBar * sb, @@ -168,7 +165,6 @@ void trg_status_bar_update(TrgStatusBar * sb, gtk_label_set_text(GTK_LABEL(priv->info_lbl), infoText); gtk_label_set_text(GTK_LABEL(priv->speed_lbl), speedText); - g_free(speedText); g_free(infoText); } diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index 7cea804..735bda0 100644 --- a/src/trg-torrent-model.c +++ b/src/trg-torrent-model.c @@ -176,6 +176,8 @@ static void trg_torrent_model_init(TrgTorrentModel * self) column_types[TORRENT_COLUMN_DOWNLOADDIR] = G_TYPE_STRING; column_types[TORRENT_COLUMN_BANDWIDTH_PRIORITY] = G_TYPE_INT64; column_types[TORRENT_COLUMN_DONE_DATE] = G_TYPE_INT64; + column_types[TORRENT_COLUMN_FROMPEX] = G_TYPE_INT64; + column_types[TORRENT_COLUMN_FROMDHT] = G_TYPE_INT64; gtk_list_store_set_column_types(GTK_LIST_STORE(self), TORRENT_COLUMN_COLUMNS, column_types); @@ -225,7 +227,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, { GtkListStore *ls = GTK_LIST_STORE(model); guint lastFlags, newFlags; - JsonObject *lastJson; + JsonObject *lastJson, *pf; gchar *statusString, *statusIcon; gint64 downRate, upRate, downloaded, uploaded, id, status; @@ -244,6 +246,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, statusString = torrent_get_status_string(rpcv, status); newFlags = torrent_get_flags(t, rpcv, status, downRate, upRate); statusIcon = torrent_get_status_icon(rpcv, newFlags); + pf = torrent_get_peersfrom(t); gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_FLAGS, &lastFlags, @@ -286,6 +289,10 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, torrent_get_bandwidth_priority(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMPEX, + peerfrom_get_pex(pf), -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMDHT, + peerfrom_get_dht(pf), -1); #else gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, @@ -302,6 +309,8 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, TORRENT_COLUMN_ETA, torrent_get_eta(t), TORRENT_COLUMN_UPLOADED, uploaded, TORRENT_COLUMN_DOWNLOADED, downloaded, + TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf), + TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf), TORRENT_COLUMN_RATIO, uploaded > 0 diff --git a/src/trg-torrent-model.h b/src/trg-torrent-model.h index 714af50..9716a97 100644 --- a/src/trg-torrent-model.h +++ b/src/trg-torrent-model.h @@ -99,6 +99,8 @@ enum { TORRENT_COLUMN_DOWNLOADDIR, TORRENT_COLUMN_BANDWIDTH_PRIORITY, TORRENT_COLUMN_DONE_DATE, + TORRENT_COLUMN_FROMPEX, + TORRENT_COLUMN_FROMDHT, TORRENT_COLUMN_COLUMNS }; diff --git a/src/trg-torrent-tree-view.c b/src/trg-torrent-tree-view.c index 8c73fcc..5cd07d1 100644 --- a/src/trg-torrent-tree-view.c +++ b/src/trg-torrent-tree-view.c @@ -57,6 +57,12 @@ static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv) trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_LEECHERS, _("Leechers"), "leechers", 0); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, + TORRENT_COLUMN_FROMPEX, _("PEX Peers"), + "from-pex", TRG_COLUMN_EXTRA); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, + TORRENT_COLUMN_FROMDHT, _("DHT Peers"), + "from-dht", TRG_COLUMN_EXTRA); trg_tree_view_reg_column(ttv, TRG_COLTYPE_SPEED, TORRENT_COLUMN_DOWNSPEED, _("Down Speed"), "down-speed", 0); |