summaryrefslogtreecommitdiff
path: root/src/trg-torrent-add-dialog.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-08 00:52:56 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-08 00:52:56 +0000
commite1b13312f975f38d3d7437f28299912eff6947e0 (patch)
tree563d1d7937ce87915e2055d9b2f1dae37d2b9b71 /src/trg-torrent-add-dialog.c
parent0a1fa495bd2186c2004fbc0f8977fe52a5f82168 (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/trg-torrent-add-dialog.c')
-rw-r--r--src/trg-torrent-add-dialog.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/trg-torrent-add-dialog.c b/src/trg-torrent-add-dialog.c
index c072b28..bf29b8b 100644
--- a/src/trg-torrent-add-dialog.c
+++ b/src/trg-torrent-add-dialog.c
@@ -51,8 +51,7 @@ enum {
};
enum {
- FC_ICON, FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED,
- N_FILE_COLS
+ FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED, N_FILE_COLS
};
G_DEFINE_TYPE(TrgTorrentAddDialog, trg_torrent_add_dialog, GTK_TYPE_DIALOG)
@@ -402,8 +401,7 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store)
gtk_tree_view_column_set_sort_column_id(col, FC_PRIORITY);
gtk_tree_view_append_column(tree_view, col);
- *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_STRING, /* icon */
- G_TYPE_INT, /* index */
+ *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_INT, /* index */
G_TYPE_STRING, /* label */
G_TYPE_INT64, /* size */
G_TYPE_INT, /* priority */
@@ -473,10 +471,7 @@ static void store_add_node(GtkTreeStore * store, GtkTreeIter * parent,
if (node->name) {
gtk_tree_store_append(store, &child, parent);
gtk_tree_store_set(store, &child, FC_LABEL, node->name, FC_ENABLED,
- 1, FC_ICON,
- node->
- children ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE,
- FC_INDEX, node->children ? -1 : node->index,
+ 1, FC_INDEX, node->children ? -1 : node->index,
FC_PRIORITY, TR_PRI_NORMAL, -1);
if (!node->children) {
@@ -627,8 +622,8 @@ static void trg_torrent_add_dialog_source_click_cb(GtkWidget * w,
gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(d));
trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(d),
- trg_client_get_prefs(priv->
- client));
+ trg_client_get_prefs
+ (priv->client));
trg_torrent_add_dialog_set_filenames(TRG_TORRENT_ADD_DIALOG(data),
priv->filenames);
}