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

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

index 0310f84..2b5c091 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, line, message) {\n\n\n    // loop through parent childnre\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 new this.el.get_path(iter);\n\n}\n   ",
+           "| void nodeAppendOrCreate" : "(Gtk.TreePath? par, string id, string file, line, message) {\n\n\n    // loop through parent childnre\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                GLib.Value mval;\n                this.el.get_value(iter, 2, out mval);\n                var smval = (string)mval;\n                mval.set_string(mval + \"\\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}\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 a5a6ba7..916e6f9 100644 (file)
@@ -396,13 +396,30 @@ public class Xcls_GtkView : Object
         
         
             // loop through parent childnre
-           
+            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) {
+                        GLib.Value mval;
+                        this.el.get_value(iter, 2, out mval);
+                        var smval = (string)mval;
+                        mval.set_string(mval + "\n" + message); //markup?
+                    
+                        return;
+                    }
+                    loop = this.el.iter_next(iter);    
+                }
+            }
             // create the node...
             
             this.el.append(out iter,par == null ? null : piter);
             this.el.set(iter, id, line, message, file,-1);
                 
-            return new this.el.get_path(iter);
+            return ;
         
         }
         public Gtk.TreePath nodeFindOrCreate (Gtk.TreePath? par, string id, string title) {