aboutsummaryrefslogtreecommitdiff
path: root/src/foldersel.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2008-11-27 10:29:37 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2008-11-27 10:29:37 +0000
commit16eaf67354bca75d9bc3aa6e7393af71c4ddf4ee (patch)
tree68e5dca2cd645ab11ed671984afbbfafaf7814f5 /src/foldersel.c
parent5d7463379b24ec9b7136da2450cf61e80a44eaaf (diff)
only expand folders in folder selection dialog which are expanded in the folder view.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2082 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/foldersel.c')
-rw-r--r--src/foldersel.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/foldersel.c b/src/foldersel.c
index d945af5d..8d5eb5a6 100644
--- a/src/foldersel.c
+++ b/src/foldersel.c
@@ -193,6 +193,8 @@ FolderItem *foldersel_folder_sel_full(Folder *cur_folder,
selection = gtk_tree_view_get_selection
(GTK_TREE_VIEW(treeview));
+ gtkut_tree_view_expand_parent_all
+ (GTK_TREE_VIEW(treeview), &fis.iter);
gtk_tree_selection_select_iter(selection, &fis.iter);
gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview),
fis.path, NULL, FALSE);
@@ -479,6 +481,15 @@ static void foldersel_insert_gnode_in_store(GtkTreeStore *store, GNode *node,
item = FOLDER_ITEM(node->data);
foldersel_append_item(store, item, &child, parent);
+ if (parent && item->parent && node->parent->children == node &&
+ !item->parent->collapsed) {
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), parent);
+ gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview), path, FALSE);
+ gtk_tree_path_free(path);
+ }
+
/* insert its children (this node as parent) */
for (iter = node->children; iter != NULL; iter = iter->next)
foldersel_insert_gnode_in_store(store, iter, &child);
@@ -506,8 +517,6 @@ static void foldersel_set_tree(Folder *cur_folder)
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(tree_store),
FOLDERSEL_FOLDERNAME,
GTK_SORT_ASCENDING);
-
- gtk_tree_view_expand_all(GTK_TREE_VIEW(treeview));
}
static gboolean foldersel_selected(GtkTreeSelection *selection,