summaryrefslogtreecommitdiff
path: root/src/trg-torrent-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-26 20:18:11 +0100
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-08-26 20:18:11 +0100
commit28b1af7e5d73f8bacc3dca76166138bc3d4d24a5 (patch)
treed69b25e7b0389bf1e4f8de2bb459aa30f1bbf8d4 /src/trg-torrent-model.c
parentfbfb76e99858588292aa6e929dcfe6acae3912b7 (diff)
add the peers/files/trackers tree view to torrent dialog in transmission style
Diffstat (limited to 'src/trg-torrent-model.c')
-rw-r--r--src/trg-torrent-model.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index 501e1a1..c582bd7 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -56,6 +56,7 @@
enum {
TMODEL_TORRENT_COMPLETED,
+ TMODEL_UPDATE,
TMODEL_TORRENT_ADDED,
TMODEL_STATE_CHANGED,
TMODEL_SIGNAL_COUNT
@@ -109,6 +110,18 @@ static void trg_torrent_model_class_init(TrgTorrentModelClass * klass)
G_TYPE_NONE, 1,
G_TYPE_POINTER);
+ signals[TMODEL_UPDATE] = g_signal_new("update",
+ G_TYPE_FROM_CLASS
+ (object_class),
+ G_SIGNAL_RUN_LAST |
+ G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET
+ (TrgTorrentModelClass,
+ update),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
signals[TMODEL_TORRENT_ADDED] = g_signal_new("torrent-added",
G_TYPE_FROM_CLASS
(object_class),
@@ -679,7 +692,7 @@ trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel *
JsonObject *args, *t;
GList *li;
gint64 id;
- gint64 *idCopy;
+ gint64 serial = trg_client_get_serial(tc);
JsonArray *removedTorrents;
GtkTreeIter iter;
GtkTreePath *path;
@@ -704,10 +717,11 @@ trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel *
g_hash_table_lookup(priv->ht, &id);
if (!result) {
+ gint64 *idCopy;
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
whatsChanged |= TORRENT_UPDATE_ADDREMOVE;
- update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc),
+ update_torrent_iter(model, tc, rpcv, serial,
&iter, t, &(priv->stats), &whatsChanged);
path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter);
@@ -727,7 +741,7 @@ trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel *
if (gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter,
path)) {
update_torrent_iter(model, tc, rpcv,
- trg_client_get_serial(tc), &iter,
+ serial, &iter,
t, &(priv->stats), &whatsChanged);
}
gtk_tree_path_free(path);
@@ -739,8 +753,7 @@ trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel *
if (mode == TORRENT_GET_MODE_UPDATE) {
GList *hitlist =
- trg_torrent_model_find_removed(GTK_TREE_MODEL(model),
- trg_client_get_serial(tc));
+ trg_torrent_model_find_removed(GTK_TREE_MODEL(model), serial);
if (hitlist) {
for (li = hitlist; li; li = g_list_next(li)) {
g_hash_table_remove(priv->ht, li->data);
@@ -774,5 +787,7 @@ trg_torrent_model_update_stats *trg_torrent_model_update(TrgTorrentModel *
whatsChanged);
}
+ g_signal_emit(model, signals[TMODEL_UPDATE], 0);
+
return &(priv->stats);
}