fixes for migrating to gtk4
authorAlan Knowles <alan@roojs.com>
Sun, 23 Oct 2022 04:49:19 +0000 (12:49 +0800)
committerAlan Knowles <alan@roojs.com>
Sun, 23 Oct 2022 04:49:19 +0000 (12:49 +0800)
src/JsRender/NodeToVala.vala
src/Palete/Gtk.vala

index f1fd18f..d4d9026 100644 (file)
@@ -626,9 +626,11 @@ public class JsRender.NodeToVala : Object {
                        menuitem_children = new Gee.ArrayList<string>();
                        menuitem_children.add("Gtk.MenuItem");
                        var gir = this.file.project.palete.getClass("Gtk.MenuItem");
-                       foreach(var impl in gir.implementations) {
-                               menuitem_children.add(impl);
-                       }
+                       if (gir != null) {
+                           foreach(var impl in gir.implementations) {
+                                   menuitem_children.add(impl);
+                           }
+                   }
                }
 
                if (menuitem_children.contains(this.node.fqn())) {
index 9d708eb..65cb40c 100644 (file)
@@ -735,35 +735,38 @@ namespace Palete {
                         
                                //gtk box failing
                        //GLib.debug("No. of parmas %s %d", cls, ctor.params.size);
-                       
-                       foreach (var prop in ar.get(method).paramset.params) {
-                               string[] opts;
-                               
-                               GLib.debug("adding proprty from ctor : %s, %s, %s", cls, prop.name, prop.type);
+                       var m = ar.get(method);
+                       if (m != null) {
+                       
+                           
+                           foreach (var prop in m.paramset.params) {
+                                   string[] opts;
+                                   
+                                   GLib.debug("adding proprty from ctor : %s, %s, %s", cls, prop.name, prop.type);
 
-                               var sub = this.getClass(prop.type);
-                               if (sub != null) { // can't add child classes here...
-                                       GLib.debug("skipping ctor argument proprty is an object");
-                                       continue;
-                               }
-                               var dval = "";
-                               switch (prop.type) {
-                                       case "int":
-                                               dval = "0";break;
-                                       case "string": 
-                                               dval = ""; break;
-                                       // anything else?
-                                       default:
-                                               this.typeOptions(cls, prop.name, prop.type, out opts);
-                                               dval = opts.length > 0 ? opts[0] : "";
-                                               break;
-                               }
-                               
-                               this.node_defaults.get(cls).add( new JsRender.NodeProp.prop( prop.name, prop.type, dval));
-                       
-                       
-                       }
-                       
+                                   var sub = this.getClass(prop.type);
+                                   if (sub != null) { // can't add child classes here...
+                                           GLib.debug("skipping ctor argument proprty is an object");
+                                           continue;
+                                   }
+                                   var dval = "";
+                                   switch (prop.type) {
+                                           case "int":
+                                                   dval = "0";break;
+                                           case "string": 
+                                                   dval = ""; break;
+                                           // anything else?
+                                           default:
+                                                   this.typeOptions(cls, prop.name, prop.type, out opts);
+                                                   dval = opts.length > 0 ? opts[0] : "";
+                                                   break;
+                                   }
+                                   
+                                   this.node_defaults.get(cls).add( new JsRender.NodeProp.prop( prop.name, prop.type, dval));
+                           
+                           
+                           }
+                   }
                }
                
                public void add_node_default(string cls, string propname, string val = "")