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

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

index 3bb3c1c..b1c3c4b 100644 (file)
@@ -81,7 +81,7 @@
            "columns" : "  typeof(string), typeof(int), typeof(string), typeof(string) ",
            "* pack" : "set_model",
            "xtype" : "TreeStore",
-           "| void nodeAppendOrCreate" : "(Gtk.TreePath  par, string id, string file, int line, string message) {\n\n    Gtk.TreeIter piter;\n     \n    this.el.get_iter(out piter, par);\n     \n    // loop through parent childnre\n    Gtk.TreeIter iter; \n    var loop = this.el.iter_children(out iter, par == null ? null : piter);\n    \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            GLib.Value mval;\n            this.el.get_value(iter, 2, out mval);\n            var smval = (string)mval;\n            mval.set_string(smval + \"\\n\" + message); //markup?\n        \n            return;\n        }\n        loop = this.el.iter_next(iter);    \n    }\n    \n    // create the node...\n    \n    this.el.append(out iter,par == null ? null : piter);\n    this.el.set(iter, id, line, message, file,-1);\n        \n    return ;\n\n}   ",
+           "| void nodeAppendOrCreate" : "(Gtk.TreePath  par, string id, string file, int line, string message) {\n\n    Gtk.TreeIter piter;\n     \n    this.el.get_iter(out piter, par);\n     \n    // loop through parent childnre\n    Gtk.TreeIter iter; \n    var loop =  par == null ? \n        this.el.iter_children(out iter, null) :\n         this.el.iter_children(out iter,  piter);\n    \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            GLib.Value mval;\n            this.el.get_value(iter, 2, out mval);\n            var smval = (string)mval;\n            mval.set_string(smval + \"\\n\" + message); //markup?\n        \n            return;\n        }\n        loop = this.el.iter_next(ref iter);    \n    }\n    \n    // create the node...\n    if (par == null) {\n        this.el.append(out iter, null);\n    } else {\n        this.el.append(out iter, piter);\n    }\n    this.el.set(iter, id, line, message, file,-1);\n        \n    return ;\n\n}   ",
            "$ xns" : "Gtk",
            "| 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    this.el.append(out iter,par == null ? null : piter);\n    this.el.set(iter, id, 0, title, \"\",-1);\n       \n    return new this.el.get_path(iter);\n\n}\n   "
           },
index 099a3f2..fcd0df3 100644 (file)
@@ -400,7 +400,9 @@ public class Xcls_GtkView : Object
              
             // loop through parent childnre
             Gtk.TreeIter iter; 
-            var loop = this.el.iter_children(out iter, par == null ? null : piter);
+            var loop =  par == null ? 
+                this.el.iter_children(out iter, null) :
+                 this.el.iter_children(out iter,  piter);
             
             while (loop) {
                 GLib.Value val;
@@ -414,12 +416,15 @@ public class Xcls_GtkView : Object
                 
                     return;
                 }
-                loop = this.el.iter_next(iter);    
+                loop = this.el.iter_next(ref iter);    
             }
             
             // create the node...
-            
-            this.el.append(out iter,par == null ? null : piter);
+            if (par == null) {
+                this.el.append(out iter, null);
+            } else {
+                this.el.append(out iter, piter);
+            }
             this.el.set(iter, id, line, message, file,-1);
                 
             return ;