src/Builder4/GtkView.bjs
authorAlan Knowles <alan@roojs.com>
Wed, 29 Apr 2015 12:23:47 +0000 (20:23 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 29 Apr 2015 12:23:47 +0000 (20:23 +0800)
src/Builder4/GtkView.vala

src/Builder4/GtkView.bjs
src/Builder4/GtkView.vala

index e035095..e836190 100644 (file)
@@ -82,7 +82,7 @@
            "* pack" : "set_model",
            "xtype" : "TreeStore",
            "$ xns" : "Gtk",
-           "| Gtk.TreePath nodeFindOrCreate" : "(Gtk.TreePath? par, string id, string title) {\n\n    // loop through parent childnre\n    \n\n    return new Gtk.TreePath(); \n\n}\n   "
+           "| Gtk.TreePath nodeFindOrCreate" : "(Gtk.TreePath? par, string id, string title) {\n\n    // loop through parent childnre\n    Gtk.TreeIter piter;\n    if (par != null) {\n        this.el.get_iter(out piter, par);\n    }\n    Gtk.TreeIter iter;\n    if (this.el.iter_children(out iter, par == null ? null : piter)) {\n        var loop = true;\n        while (loop) {\n            GLib.Value val;\n            this.el.get_value(iter, 0, out val);\n            var sval = (string)val;\n            if (sval == id) {\n                return this.el.get_path(iter);\n            }\n            loop = this.el.iter_next(iter);    \n        }\n    }\n    // create the node...\n    \n    \n    \n    return new Gtk.TreePath(); \n\n}\n   "
           },
           {
            "utf8 title" : "Compile output",
index eb4293b..3070789 100644 (file)
@@ -395,8 +395,27 @@ public class Xcls_GtkView : Object
         public Gtk.TreePath nodeFindOrCreate (Gtk.TreePath? par, string id, string title) {
         
             // loop through parent childnre
+            Gtk.TreeIter piter;
+            if (par != null) {
+                this.el.get_iter(out piter, par);
+            }
+            Gtk.TreeIter iter;
+            if (this.el.iter_children(out iter, par == null ? null : piter)) {
+                var loop = true;
+                while (loop) {
+                    GLib.Value val;
+                    this.el.get_value(iter, 0, out val);
+                    var sval = (string)val;
+                    if (sval == id) {
+                        return this.el.get_path(iter);
+                    }
+                    loop = this.el.iter_next(iter);    
+                }
+            }
+            // create the node...
+            
+            
             
-        
             return new Gtk.TreePath(); 
         
         }