diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-04-23 16:50:50 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-04-23 16:50:50 +0000 |
commit | 9d0f1730fa146ee68ad3c6e3e6a9295364d22d98 (patch) | |
tree | 65ac3cadf4b3cb961bb4e0fe6ee778065c89caa5 /src | |
parent | 448a320aeb1b523893bd450c2ac9e52230da9410 (diff) |
after a move or properties change (via dialog) on a single torrent, perform a refresh on it. on multiple, refresh everything. add an optional torrent priority, id column, date done column.
Diffstat (limited to 'src')
-rw-r--r-- | src/requests.c | 7 | ||||
-rw-r--r-- | src/requests.h | 1 | ||||
-rw-r--r-- | src/torrent.c | 5 | ||||
-rw-r--r-- | src/torrent.h | 1 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 43 | ||||
-rw-r--r-- | src/trg-torrent-model.h | 2 | ||||
-rw-r--r-- | src/trg-torrent-move-dialog.c | 1 | ||||
-rw-r--r-- | src/trg-torrent-props-dialog.c | 1 | ||||
-rw-r--r-- | src/trg-torrent-tree-view.c | 3 |
9 files changed, 45 insertions, 19 deletions
diff --git a/src/requests.c b/src/requests.c index ba761f9..b52f5c9 100644 --- a/src/requests.c +++ b/src/requests.c @@ -140,7 +140,6 @@ JsonNode *torrent_get(gint64 id) json_array_add_string_element(fields, FIELD_NAME); json_array_add_string_element(fields, FIELD_PERCENTDONE); json_array_add_string_element(fields, FIELD_COMMENT); - json_array_add_string_element(fields, FIELD_ADDED_DATE); json_array_add_string_element(fields, FIELD_TOTAL_SIZE); json_array_add_string_element(fields, FIELD_LEFT_UNTIL_DONE); json_array_add_string_element(fields, FIELD_ANNOUNCE_URL); @@ -202,3 +201,9 @@ void request_set_tag(JsonNode * req, gint64 tag) { json_object_set_int_member(json_node_get_object(req), PARAM_TAG, tag); } + +void request_set_tag_from_ids(JsonNode *req, JsonArray *ids) +{ + gint64 id = json_array_get_length(ids) == 1 ? json_array_get_int_element(ids, 0) : -1; + request_set_tag(req, id); +} diff --git a/src/requests.h b/src/requests.h index 8c1bc00..a47c88d 100644 --- a/src/requests.h +++ b/src/requests.h @@ -42,5 +42,6 @@ JsonNode *blocklist_update(void); JsonNode *port_test(void); JsonNode *session_stats(void); void request_set_tag(JsonNode * req, gint64 tag); +void request_set_tag_from_ids(JsonNode *req, JsonArray *ids); #endif /* REQUESTS_H_ */ diff --git a/src/torrent.c b/src/torrent.c index 3d0d02e..93bee44 100644 --- a/src/torrent.c +++ b/src/torrent.c @@ -192,6 +192,11 @@ gchar *torrent_get_status_icon(guint flags) return g_strdup(GTK_STOCK_DIALOG_QUESTION); } +gint64 torrent_get_done_date(JsonObject *t) +{ + return json_object_get_int_member(t, FIELD_DONE_DATE); +} + const gchar *torrent_get_errorstr(JsonObject * t) { return json_object_get_string_member(t, FIELD_ERRORSTR); diff --git a/src/torrent.h b/src/torrent.h index 118d36b..b1e609a 100644 --- a/src/torrent.h +++ b/src/torrent.h @@ -64,6 +64,7 @@ gboolean torrent_get_honors_session_limits(JsonObject * t); gint64 torrent_get_bandwidth_priority(JsonObject * t); gint64 torrent_get_upload_limit(JsonObject * t); gint64 torrent_get_added_date(JsonObject * t); +gint64 torrent_get_done_date(JsonObject *t); gboolean torrent_get_upload_limited(JsonObject * t); gint64 torrent_get_download_limit(JsonObject * t); gboolean torrent_get_download_limited(JsonObject * t); diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index a442145..d692627 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_UPDATESERIAL] = G_TYPE_INT64; column_types[TORRENT_COLUMN_FLAGS] = G_TYPE_INT; 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; gtk_list_store_set_column_types(GTK_LIST_STORE(self), TORRENT_COLUMN_COLUMNS, column_types); @@ -256,6 +258,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 serial, GtkTreeIter * iter, JsonObject * t, trg_torrent_model_update_stats * stats) { + GtkListStore *ls = GTK_LIST_STORE(model); guint lastFlags, newFlags; JsonObject *lastJson; gchar *statusString, *statusIcon; @@ -284,48 +287,51 @@ update_torrent_iter(TrgTorrentModel * model, gint64 serial, json_object_ref(t); #ifdef DEBUG - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_NAME, torrent_get_name(t), -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_SIZE, torrent_get_size(t), -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE, torrent_get_percent_done(t), -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_STATUS, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_STATUS, statusString, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNSPEED, downRate, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_FLAGS, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_FLAGS, newFlags, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_UPSPEED, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPSPEED, upRate, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_ETA, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ETA, torrent_get_eta(t), -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPLOADED, uploaded, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADED, downloaded, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_RATIO, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_RATIO, uploaded > 0 && downloaded > 0 ? (double) uploaded / (double) downloaded : 0, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_ID, id, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ID, id, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_JSON, t, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_JSON, t, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPDATESERIAL, serial, -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ADDED, torrent_get_added_date(t), -1); - gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_DOWNLOADDIR, torrent_get_download_dir(t)); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR, torrent_get_download_dir(t)); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_BANDWIDTH_PRIORITY, torrent_get_bandwidth_priority(t)); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), -1); #else - gtk_list_store_set(GTK_LIST_STORE(model), iter, + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, TORRENT_COLUMN_ADDED, torrent_get_added_date(t), + TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), TORRENT_COLUMN_NAME, torrent_get_name(t), TORRENT_COLUMN_SIZE, torrent_get_size(t), TORRENT_COLUMN_DONE, @@ -343,6 +349,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 serial, && downloaded > 0 ? (double) uploaded / (double) downloaded : 0, TORRENT_COLUMN_DOWNLOADDIR, torrent_get_download_dir(t), + TORRENT_COLUMN_BANDWIDTH_PRIORITY, torrent_get_bandwidth_priority(t), TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, TORRENT_COLUMN_UPDATESERIAL, serial, -1); #endif diff --git a/src/trg-torrent-model.h b/src/trg-torrent-model.h index df969e1..c752127 100644 --- a/src/trg-torrent-model.h +++ b/src/trg-torrent-model.h @@ -97,6 +97,8 @@ enum { TORRENT_COLUMN_UPDATESERIAL, TORRENT_COLUMN_FLAGS, TORRENT_COLUMN_DOWNLOADDIR, + TORRENT_COLUMN_BANDWIDTH_PRIORITY, + TORRENT_COLUMN_DONE_DATE, TORRENT_COLUMN_COLUMNS }; diff --git a/src/trg-torrent-move-dialog.c b/src/trg-torrent-move-dialog.c index f9bfb62..b10a471 100644 --- a/src/trg-torrent-move-dialog.c +++ b/src/trg-torrent-move-dialog.c @@ -64,6 +64,7 @@ trg_torrent_move_response_cb(GtkDialog * dlg, gint res_id, gpointer data) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->move_check))); + request_set_tag_from_ids(request, priv->ids); g_free(location); dispatch_async(priv->client, request, on_generic_interactive_action, data); diff --git a/src/trg-torrent-props-dialog.c b/src/trg-torrent-props-dialog.c index 8f83ffd..d50bd89 100644 --- a/src/trg-torrent-props-dialog.c +++ b/src/trg-torrent-props-dialog.c @@ -122,6 +122,7 @@ trg_torrent_props_response_cb(GtkDialog * dlg, gint res_id, } request = torrent_set(priv->targetIds); + request_set_tag_from_ids(request, priv->targetIds); args = node_get_arguments(request); gtk_toggle_button_json_out(GTK_TOGGLE_BUTTON diff --git a/src/trg-torrent-tree-view.c b/src/trg-torrent-tree-view.c index f2d6f7b..473a0e1 100644 --- a/src/trg-torrent-tree-view.c +++ b/src/trg-torrent-tree-view.c @@ -78,6 +78,9 @@ static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv) _("Location"), "download-dir", TRG_COLUMN_EXTRA); trg_tree_view_reg_column(ttv, TRG_COLTYPE_TEXT, TORRENT_COLUMN_ID, _("ID"), "id", TRG_COLUMN_EXTRA); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_PRIO, TORRENT_COLUMN_BANDWIDTH_PRIORITY, + _("Bandwidth Priority"), "bandwidth-priority", TRG_COLUMN_EXTRA); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_EPOCH, TORRENT_COLUMN_DONE_DATE, _("Done Date"), "done-date", TRG_COLUMN_EXTRA); gtk_tree_view_set_search_column(GTK_TREE_VIEW(tttv), TORRENT_COLUMN_NAME); |