diff options
-rw-r--r-- | src/trg-destination-combo.c | 9 | ||||
-rw-r--r-- | src/trg-state-selector.c | 21 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 10 |
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, |