summaryrefslogtreecommitdiff
path: root/src
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
parente8cf7cb598d2dcb8cba29ccbe89eaa8509b16e63 (diff)
issue 71
Diffstat (limited to 'src')
-rw-r--r--src/trg-destination-combo.c9
-rw-r--r--src/trg-state-selector.c21
-rw-r--r--src/trg-torrent-model.c10
3 files changed, 23 insertions, 17 deletions
diff --git a/src/trg-destination-combo.c b/src/trg-destination-combo.c
index c1f3758..4717637 100644
--- a/src/trg-destination-combo.c
+++ b/src/trg-destination-combo.c
@@ -130,11 +130,12 @@ static GObject *trg_destination_combo_constructor(GType type,
if (gtk_tree_model_get_iter(model, &iter, path)) {
gchar *dd;
gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, &t,
- -1);
- dd = g_strdup(torrent_get_download_dir(t));
- rm_trailing_slashes(dd);
+ TORRENT_COLUMN_DOWNLOADDIR, &dd,
+ -1);;
if (dd && g_strcmp0(dd, defaultDownDir))
g_slist_str_set_add(&dirs, dd, -1);
+ else
+ g_free(dd);
}
gtk_tree_path_free(path);
@@ -146,7 +147,7 @@ static GObject *trg_destination_combo_constructor(GType type,
g_list_free(torrentItemRefs);
g_slist_str_set_add(&dirs, defaultDownDir, 0);
- for (sli = dirs; sli != NULL; sli = g_slist_next(sli))
+ for (sli = dirs; sli; sli = g_slist_next(sli))
gtk_list_store_insert_with_values(comboModel, NULL, INT_MAX, 0,
(gchar *) sli->data, -1);
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) {
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index a0e041f..89f6641 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -228,7 +228,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
guint lastFlags, newFlags;
JsonObject *lastJson, *pf, *firstTracker;
JsonArray *trackerStats;
- gchar *statusString, *statusIcon;
+ gchar *statusString, *statusIcon, *downloadDir;
gint64 downRate, upRate, downloaded, uploaded, id, status;
downRate = torrent_get_rate_down(t);
@@ -240,8 +240,10 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
uploaded = torrent_get_uploaded(t);
downloaded = torrent_get_downloaded(t);
- id = torrent_get_id(t);
+ downloadDir = torrent_get_download_dir(t);
+ rm_trailing_slashes(downloadDir);
+ id = torrent_get_id(t);
status = torrent_get_status(t);
statusString = torrent_get_status_string(rpcv, status);
newFlags = torrent_get_flags(t, rpcv, status, downRate, upRate);
@@ -287,7 +289,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
TORRENT_COLUMN_ADDED, torrent_get_added_date(t),
-1);
gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR,
- torrent_get_download_dir(t), -1);
+ downloadDir, -1);
gtk_list_store_set(ls, iter, TORRENT_COLUMN_BANDWIDTH_PRIORITY,
torrent_get_bandwidth_priority(t), -1);
gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE,
@@ -331,7 +333,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
&& downloaded >
0 ? (double) uploaded / (double) downloaded : 0,
TORRENT_COLUMN_DOWNLOADDIR,
- torrent_get_download_dir(t),
+ downloadDir,
TORRENT_COLUMN_BANDWIDTH_PRIORITY,
torrent_get_bandwidth_priority(t),
TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t,