summaryrefslogtreecommitdiff
path: root/src/trg-state-selector.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-08 19:49:34 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-08 19:49:34 +0000
commit6da9f33b200227e3dadf53d3fdbbf7712b90ba01 (patch)
tree75f66d5119a3edcc3299e76927d42dbb720b3ccd /src/trg-state-selector.c
parente8cf7cb598d2dcb8cba29ccbe89eaa8509b16e63 (diff)
issue 71
Diffstat (limited to 'src/trg-state-selector.c')
-rw-r--r--src/trg-state-selector.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/trg-state-selector.c b/src/trg-state-selector.c
index 6a2d37a..99b518c 100644
--- a/src/trg-state-selector.c
+++ b/src/trg-state-selector.c
@@ -237,9 +237,8 @@ void trg_state_selector_update(TrgStateSelector * s) {
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(s));
TrgClient *client = priv->client;
gint64 updateSerial = trg_client_get_serial(client);
- GList *torrentItemRefs = g_hash_table_get_values(
- trg_client_get_torrent_table(client));
- GtkTreeIter iter;
+ GList *torrentItemRefs;
+ GtkTreeIter torrentIter, iter;
GList *trackersList, *trackerItem, *li;
GtkTreeRowReference *rr;
GtkTreePath *path;
@@ -250,6 +249,8 @@ void trg_state_selector_update(TrgStateSelector * s) {
if (!trg_client_is_connected(client))
return;
+ torrentItemRefs = g_hash_table_get_values(trg_client_get_torrent_table(client));
+
for (li = torrentItemRefs; li; li = g_list_next(li)) {
JsonObject *t = NULL;
rr = (GtkTreeRowReference *) li->data;
@@ -257,9 +258,8 @@ void trg_state_selector_update(TrgStateSelector * s) {
torrentModel = gtk_tree_row_reference_get_model(rr);
if (path) {
- GtkTreeIter iter;
- if (gtk_tree_model_get_iter(torrentModel, &iter, path)) {
- gtk_tree_model_get(torrentModel, &iter, TORRENT_COLUMN_JSON,
+ if (gtk_tree_model_get_iter(torrentModel, &torrentIter, path)) {
+ gtk_tree_model_get(torrentModel, &torrentIter, TORRENT_COLUMN_JSON,
&t, -1);
}
gtk_tree_path_free(path);
@@ -306,8 +306,9 @@ void trg_state_selector_update(TrgStateSelector * s) {
}
if (priv->showDirs) {
- gchar *dir = g_strdup(torrent_get_download_dir(t));
- rm_trailing_slashes(dir);
+ gchar *dir;
+ gtk_tree_model_get(torrentModel, &torrentIter, TORRENT_COLUMN_DOWNLOADDIR,
+ &dir, -1);
result = g_hash_table_lookup(priv->directories, dir);
if (result) {
@@ -325,6 +326,8 @@ void trg_state_selector_update(TrgStateSelector * s) {
g_hash_table_insert(priv->directories, g_strdup(dir),
quick_tree_ref_new(model, &iter));
}
+
+ g_free(dir);
}
}
@@ -369,7 +372,7 @@ static void trg_state_selector_add_state(GtkListStore * model,
gtk_list_store_set(model, iter, STATE_SELECTOR_ICON, icon,
STATE_SELECTOR_NAME, name, STATE_SELECTOR_BIT, flag,
STATE_SELECTOR_INDEX,
- gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL)-1, -1);
+ gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL) - 1, -1);
}
static void remove_row_ref_and_free(GtkTreeRowReference * rr) {