summaryrefslogtreecommitdiff
path: root/src/trg-torrent-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-11 05:08:33 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-11 05:08:33 +0000
commit4276d54adc40c8a39e1cb779bcf965075aa90f86 (patch)
treeea07384d5868385de0956a97dc98b72156edd1ef /src/trg-torrent-model.c
parentedb57ecf2260733fe337a2bb8d27079d82f9fb6d (diff)
first attempt at libappindicator support
Diffstat (limited to 'src/trg-torrent-model.c')
-rw-r--r--src/trg-torrent-model.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index e1fd3a0..4c86682 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -70,6 +70,7 @@ typedef struct _TrgTorrentModelPrivate TrgTorrentModelPrivate;
struct _TrgTorrentModelPrivate {
GHashTable *ht;
GRegex *urlHostRegex;
+ trg_torrent_model_update_stats stats;
};
static void trg_torrent_model_dispose(GObject * object) {
@@ -111,6 +112,12 @@ static void trg_torrent_model_class_init(TrgTorrentModelClass * klass) {
G_TYPE_NONE, 0);
}
+trg_torrent_model_update_stats *trg_torrent_model_get_stats(TrgTorrentModel * model)
+{
+ TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model);
+ return &(priv->stats);
+}
+
static void trg_torrent_model_count_peers(TrgTorrentModel * model,
GtkTreeIter * iter, JsonObject * t) {
GList *trackersList = json_array_get_elements(torrent_get_tracker_stats(t));
@@ -584,8 +591,8 @@ gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t,
return found;
}
-void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
- JsonObject * response, trg_torrent_model_update_stats * stats,
+trg_torrent_model_update_stats* trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
+ JsonObject * response,
gint mode) {
TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model);
@@ -606,6 +613,8 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
args = get_arguments(response);
torrentList = json_array_get_elements(get_torrents(args));
+ memset(&(priv->stats), 0, sizeof(trg_torrent_model_update_stats));
+
for (li = torrentList; li; li = g_list_next(li)) {
t = json_node_get_object((JsonNode *) li->data);
id = torrent_get_id(t);
@@ -618,7 +627,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc),
- &iter, t, stats, &updateFilters);
+ &iter, t, &(priv->stats), &updateFilters);
path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter);
rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(model), path);
@@ -635,7 +644,7 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
if (gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter,
path)) {
update_torrent_iter(model, tc, rpcv,
- trg_client_get_serial(tc), &iter, t, stats, &updateFilters);
+ trg_client_get_serial(tc), &iter, t, &(priv->stats), &updateFilters);
}
gtk_tree_path_free(path);
}
@@ -672,5 +681,8 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc,
g_signal_emit(model, signals[TMODEL_UPDATE_FILTERS], 0);
gtk_tree_model_foreach(GTK_TREE_MODEL(model),
- trg_torrent_model_stats_scan_foreachfunc, stats);
+ trg_torrent_model_stats_scan_foreachfunc, &(priv->stats));
+
+ return &(priv->stats);
}
+