]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Collapse tree view branches deeper than level 2, bringing the GTK2
authorSimon Tatham <anakin@pobox.com>
Fri, 26 Jan 2007 08:01:47 +0000 (08:01 +0000)
committerSimon Tatham <anakin@pobox.com>
Fri, 26 Jan 2007 08:01:47 +0000 (08:01 +0000)
tree code into line with the GTK1.

[originally from svn r7165]

unix/GTK2.TODO
unix/gtkdlg.c

index 1f1c8b0e0c9b90f054df5a75da31e0f1aad2a420..7eb2605ed9230ca5e8fd2e219441c3c4cea139b0 100644 (file)
@@ -38,13 +38,6 @@ Items from Colin's original mail:
  - Uses of GtkList should be replaced with the non-deprecated
    GtkTreeView.
 
-Other items:
-
- - Since Colin's patch was originally prepared I committed r7117
-   (fold up treeview branches at depth 2 or greater), and this is
-   not currently replicated in the GTK2 version of the treeview
-   code. It should be.
-
 At point of merge:
 
  - Mention Colin in the website's licence page.
index b4e06f1d7a3af42fbeba90bc2cd7cfb1aab5d2e9..1c31ed34dd9b8256a2f82867b4ef63c2cea3bbd4 100644 (file)
@@ -2362,6 +2362,22 @@ int do_config_box(const char *title, Config *cfg, int midsession,
                                   TREESTORE_PARAMS, nselparams,
                                   -1);
                treeiterlevels[j] = treeiter;
+
+               treeindices[j]++;
+               treeindices[j+1] = -1;
+
+               if (j > 0) {
+                   GtkTreePath *path;
+
+                   path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore),
+                                                  &treeiterlevels[j-1]);
+                   if (j < 2)
+                       gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path,
+                                                FALSE);
+                   else
+                       gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path);
+                   gtk_tree_path_free(path);
+               }
 #else
                treeitem = gtk_tree_item_new_with_label(c);
                if (j > 0) {
@@ -2407,7 +2423,6 @@ int do_config_box(const char *title, Config *cfg, int midsession,
     }
 
 #if GTK_CHECK_VERSION(2,0,0)
-    gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
     g_signal_connect(G_OBJECT(treeselection), "changed",
                     G_CALLBACK(treeselection_changed), selparams);
 #else