[gnome-builder] tree: add/remove dummy nodes from underlying tree store



commit 4444db7c6e98357ecbe06d34c2802c1315230729
Author: Christian Hergert <chergert redhat com>
Date:   Wed Oct 14 15:27:16 2015 -0700

    tree: add/remove dummy nodes from underlying tree store
    
    If a filter is applied, we were adding/removing dummy nodes from the
    wrong model. This fixes some warnings when the underlying model changes
    and we have a filter applied.

 src/tree/gb-tree-node.c |   25 ++++++++++---------------
 1 files changed, 10 insertions(+), 15 deletions(-)
---
diff --git a/src/tree/gb-tree-node.c b/src/tree/gb-tree-node.c
index 1798291..67c3b41 100644
--- a/src/tree/gb-tree-node.c
+++ b/src/tree/gb-tree-node.c
@@ -863,29 +863,26 @@ _gb_tree_node_set_needs_build (GbTreeNode *self,
 void
 _gb_tree_node_add_dummy_child (GbTreeNode *self)
 {
-  GtkTreeModel *model;
+  GtkTreeStore *model;
   GbTreeNode *dummy;
   GtkTreeIter iter;
   GtkTreeIter parent;
 
   g_assert (GB_IS_TREE_NODE (self));
 
-  model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->tree));
-
+  model = _gb_tree_get_store (self->tree);
   gb_tree_node_get_iter (self, &parent);
-
-  dummy = gb_tree_node_new ();
-  gtk_tree_store_append (GTK_TREE_STORE (model), &iter, &parent);
-  gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
-                      0, g_object_ref_sink (dummy),
-                      -1);
+  dummy = g_object_ref_sink (gb_tree_node_new ());
+  gtk_tree_store_insert_with_values (model, &iter, &parent, -1,
+                                     0, dummy,
+                                     -1);
   g_object_unref (dummy);
 }
 
 void
 _gb_tree_node_remove_dummy_child (GbTreeNode *self)
 {
-  GtkTreeModel *model;
+  GtkTreeStore *model;
   GtkTreeIter iter;
   GtkTreeIter children;
 
@@ -894,14 +891,12 @@ _gb_tree_node_remove_dummy_child (GbTreeNode *self)
   if (self->parent == NULL)
     return;
 
-  model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->tree));
+  model = _gb_tree_get_store (self->tree);
 
   if (gb_tree_node_get_iter (self, &iter) &&
-      gtk_tree_model_iter_children (model, &children, &iter))
+      gtk_tree_model_iter_children (GTK_TREE_MODEL (model), &children, &iter))
     {
-      while (gtk_tree_store_remove (GTK_TREE_STORE (model), &children))
-        {
-        }
+      while (gtk_tree_store_remove (model, &children)) { }
     }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]