diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2012-01-08 00:52:56 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2012-01-08 00:52:56 +0000 |
commit | e1b13312f975f38d3d7437f28299912eff6947e0 (patch) | |
tree | 563d1d7937ce87915e2055d9b2f1dae37d2b9b71 /src/util.c | |
parent | 0a1fa495bd2186c2004fbc0f8977fe52a5f82168 (diff) |
fix the performance problems with the torrent add dialog on torrents with many files/dirs. the parent size updates just walks up parents rather than a full foreach, and the inserts try to use the previous update to speed up finding/creating the directories. I'll probably do something similar to the main files treeview.
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -533,3 +533,23 @@ evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) return r; #endif } + +void iter_to_row_reference(GtkTreeModel * model, GtkTreeIter * iter, + GtkTreeRowReference ** rr) +{ + GtkTreePath *path = gtk_tree_model_get_path(model, iter); + + if (*rr) + gtk_tree_row_reference_free(*rr); + + *rr = gtk_tree_row_reference_new(model, path); + gtk_tree_path_free(path); +} + +void rowref_to_iter(GtkTreeModel * model, GtkTreeRowReference * rr, + GtkTreeIter * iter) +{ + GtkTreePath *path = gtk_tree_row_reference_get_path(rr); + gtk_tree_model_get_iter(model, iter, path); + gtk_tree_path_free(path); +} |