summaryrefslogtreecommitdiff
path: root/src/trg-torrent-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-04-12 19:54:43 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-04-12 19:54:43 +0000
commitb2ff688493cf9f5381ad69fb05747c9944a46ca3 (patch)
treea818ae91925a5a8fcc592195981ae401cf565de4 /src/trg-torrent-model.c
parent05a98f92cb9eeab843727e0fa2fc052cb371109a (diff)
fix the recently-active updates, add search columns for peers/file treeview
Diffstat (limited to 'src/trg-torrent-model.c')
-rw-r--r--src/trg-torrent-model.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index b5c384d..120c932 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -405,8 +405,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, trg_client * tc,
GtkTreePath *path;
GtkTreeRowReference *rr;
gpointer *result;
- gboolean added = FALSE;
- gboolean removed = FALSE;
+ gboolean addRemove = FALSE;
args = get_arguments(response);
newTorrents = get_torrents(args);
@@ -432,14 +431,13 @@ void trg_torrent_model_update(TrgTorrentModel * model, trg_client * tc,
*idCopy = id;
g_hash_table_insert(priv->ht, idCopy, rr);
gtk_tree_path_free(path);
- added = TRUE;
+ addRemove = TRUE;
if (mode != TORRENT_GET_MODE_FIRST)
g_signal_emit(model, signals[TMODEL_TORRENT_ADDED], 0,
&iter);
} else {
- path =
- gtk_tree_row_reference_get_path((GtkTreeRowReference *)
- result);
+ path = gtk_tree_row_reference_get_path((GtkTreeRowReference *)
+ result);
if (path) {
if (gtk_tree_model_get_iter
(GTK_TREE_MODEL(model), &iter, path)) {
@@ -451,17 +449,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, trg_client * tc,
}
}
- if (mode == TORRENT_GET_MODE_ACTIVE) {
- removedTorrents = get_torrents_removed(args);
- if (removedTorrents) {
- for (li = json_array_get_elements(removedTorrents); li != NULL;
- li = g_list_next(li)) {
- id = json_node_get_int((JsonNode *) li->data);
- g_hash_table_remove(priv->ht, &id);
- removed = TRUE;
- }
- }
- } else if (mode >= TORRENT_GET_MODE_INTERACTION) {
+ if (mode == TORRENT_GET_MODE_UPDATE) {
GList *hitlist =
trg_torrent_model_find_removed(GTK_TREE_MODEL(model),
tc->updateSerial);
@@ -470,11 +458,21 @@ void trg_torrent_model_update(TrgTorrentModel * model, trg_client * tc,
g_hash_table_remove(priv->ht, li->data);
g_free(li->data);
}
- removed = TRUE;
+ addRemove = TRUE;
g_list_free(hitlist);
}
+ } else if (mode > TORRENT_GET_MODE_FIRST) {
+ removedTorrents = get_torrents_removed(args);
+ if (removedTorrents) {
+ for (li = json_array_get_elements(removedTorrents); li != NULL;
+ li = g_list_next(li)) {
+ id = json_node_get_int((JsonNode *) li->data);
+ g_hash_table_remove(priv->ht, &id);
+ addRemove = TRUE;
+ }
+ }
}
- if (added || removed)
+ if (addRemove)
g_signal_emit(model, signals[TMODEL_TORRENT_ADDREMOVE], 0);
}