Fix #7367 - only show add child on addable objects
authorAlan <alan@roojs.com>
Wed, 31 Aug 2022 08:08:59 +0000 (16:08 +0800)
committerAlan <alan@roojs.com>
Wed, 31 Aug 2022 08:08:59 +0000 (16:08 +0800)
12 files changed:
debian/autoreconf.after
debian/autoreconf.before
debian/changelog
src/Builder4/Editor.bjs
src/Builder4/Editor.vala
src/Builder4/GtkView.bjs
src/Builder4/GtkView.vala
src/Builder4/WindowLeftTree.bjs
src/Builder4/WindowLeftTree.vala
src/Builder4/WindowRooView.bjs
src/Builder4/WindowRooView.vala
src/Builder4/config1.builder

index a10e6a0..7d005a2 100644 (file)
@@ -26,7 +26,7 @@ edc8430ca864508d07046aa44624ab22  ./src/Builder4/ProjectSettings.c
 33dfb40081e08b8ccc4e8e367170ac7b  ./src/Builder4/GtkView.bjs
 1f8a135ee916234e6e10a92b6fefbbae  ./src/Builder4/DialogSaveTemplate.bjs
 01f94aae4ea0d5d9b6b56f34fa5f79f4  ./src/Builder4/DialogConfirm.vala
-8ad2dac353945d057ac67420ded35911  ./src/Builder4/PopoverProperty.vala
+a2d0fafef3cfb748e2643edce607e3d6  ./src/Builder4/PopoverProperty.vala
 ccada5ef4cce7f6634a86d7d31460d2a  ./src/Builder4/MainWindow.vala
 3aca1c873e3b299c6c9d65ade9233008  ./src/Builder4/Editor.bjs
 cc34dea3283bdac2fae049d6ed914558  ./src/Builder4/PopoverAddObject.vala
@@ -61,7 +61,7 @@ b6cd6ab7659c7b11f49577cd611d3752  ./src/Builder4/ValaProjectSettings.bjs
 1a56b326a5c38838d23c76f639970fff  ./src/Builder4/PopoverEditor.vala
 dbbe4ac728ab0d96dd578697f909dc5b  ./src/Builder4/PopoverFileDetails.vala
 7685b80a99bee07abefa79a88ccd0f52  ./src/Builder4/GladeView.bjs
-42f667b5370650630064b360a97daea2  ./src/Builder4/PopoverProperty.bjs
+7f8ea7da528f85ca83d33075dc5ced8b  ./src/Builder4/PopoverProperty.bjs
 7c9d022989780c6bdcbf75606a15b0e3  ./src/Builder4/PopoverAddProp.vala
 660550c04db28e98c81d6e4028c7a9bb  ./src/Builder4/StandardErrorDialog.vala
 dc7e9528040b3bb485f1e9f69df9b5a6  ./src/Builder4/ClutterFiles.c
@@ -237,7 +237,7 @@ d743438c4e4b765b7ce4b7e1c98b3b31  ./config.h.in~
 9580a33f9516167b4a1a72fe4fee31ae  ./.gitignore
 737061c1c974f84326be8b9281180af9  ./README.md
 959bffe2993816eb32ec4bc1ec1d5875  ./LICENSE
-d9036b941d8bca551dc5bcb519c5ffe3  ./autom4te.cache/requests
+95067042d7db431f02b3654283d53dbd  ./autom4te.cache/requests
 4ab5d64b369bac36c4c5ea81ef5e82f1  ./autom4te.cache/traces.2
 4ab5d64b369bac36c4c5ea81ef5e82f1  ./autom4te.cache/traces.1
 35d73aa64bd0b12a1f9172b40e9f62b2  ./autom4te.cache/output.1
@@ -245,7 +245,7 @@ d9036b941d8bca551dc5bcb519c5ffe3  ./autom4te.cache/requests
 99d97fe84a1747c45d8bd23c7ab9b8c4  ./autom4te.cache/traces.0
 35d73aa64bd0b12a1f9172b40e9f62b2  ./autom4te.cache/output.0
 d32239bcb673463ab874e80d47fae504  ./COPYING
-3bae6454ef01e04f1c82c0766f1024c7  ./.gdb_history
+a6990f5331cc22822f44ec5fd99de437  ./.gdb_history
 e194375eb17ee97cc2db1c3e680412a3  ./INSTALL.txt
 234ae97ddd94d5596656997f26bdd94a  ./AUTHORS
 e93be940bda9805b18b8ca846d2de2a3  ./resources/mailer.builder.html
index 28b4ef5..475cdc7 100644 (file)
@@ -24,7 +24,7 @@ edc8430ca864508d07046aa44624ab22  ./src/Builder4/ProjectSettings.c
 33dfb40081e08b8ccc4e8e367170ac7b  ./src/Builder4/GtkView.bjs
 1f8a135ee916234e6e10a92b6fefbbae  ./src/Builder4/DialogSaveTemplate.bjs
 01f94aae4ea0d5d9b6b56f34fa5f79f4  ./src/Builder4/DialogConfirm.vala
-8ad2dac353945d057ac67420ded35911  ./src/Builder4/PopoverProperty.vala
+a2d0fafef3cfb748e2643edce607e3d6  ./src/Builder4/PopoverProperty.vala
 ccada5ef4cce7f6634a86d7d31460d2a  ./src/Builder4/MainWindow.vala
 3aca1c873e3b299c6c9d65ade9233008  ./src/Builder4/Editor.bjs
 cc34dea3283bdac2fae049d6ed914558  ./src/Builder4/PopoverAddObject.vala
@@ -59,7 +59,7 @@ b6cd6ab7659c7b11f49577cd611d3752  ./src/Builder4/ValaProjectSettings.bjs
 1a56b326a5c38838d23c76f639970fff  ./src/Builder4/PopoverEditor.vala
 dbbe4ac728ab0d96dd578697f909dc5b  ./src/Builder4/PopoverFileDetails.vala
 7685b80a99bee07abefa79a88ccd0f52  ./src/Builder4/GladeView.bjs
-42f667b5370650630064b360a97daea2  ./src/Builder4/PopoverProperty.bjs
+7f8ea7da528f85ca83d33075dc5ced8b  ./src/Builder4/PopoverProperty.bjs
 7c9d022989780c6bdcbf75606a15b0e3  ./src/Builder4/PopoverAddProp.vala
 660550c04db28e98c81d6e4028c7a9bb  ./src/Builder4/StandardErrorDialog.vala
 dc7e9528040b3bb485f1e9f69df9b5a6  ./src/Builder4/ClutterFiles.c
@@ -234,7 +234,7 @@ fea4e03774fdd90e5211670458929188  ./src/Makefile.am
 737061c1c974f84326be8b9281180af9  ./README.md
 959bffe2993816eb32ec4bc1ec1d5875  ./LICENSE
 d32239bcb673463ab874e80d47fae504  ./COPYING
-3bae6454ef01e04f1c82c0766f1024c7  ./.gdb_history
+a6990f5331cc22822f44ec5fd99de437  ./.gdb_history
 e194375eb17ee97cc2db1c3e680412a3  ./INSTALL.txt
 234ae97ddd94d5596656997f26bdd94a  ./AUTHORS
 e93be940bda9805b18b8ca846d2de2a3  ./resources/mailer.builder.html
index e5e5148..b7a439e 100644 (file)
@@ -1,4 +1,4 @@
-roobuilder (4.4.0) UNRELEASED; urgency=medium
+roobuilder (4.4.0) unstable; urgency=medium
 
   * slightly better search boxes
   * Add node is in a column, rather than button above
index 8a457c1..07cc131 100644 (file)
          "\t\t_this.forwardSearch(true);",
          "\t    return true;",
          "\t}",
+         "\tif (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {",
+         "\t    GLib.debug(\"SAVE: ctrl-f  pressed\");",
+         "\t\t_this.search_entry.el.grab_focus();",
+         "\t    return true;",
+         "\t}",
          "    ",
          "   // print(event.key.keyval)",
          "    ",
index 345ac21..6d8401f 100644 (file)
@@ -569,6 +569,11 @@ public class Editor : Object
                        _this.forwardSearch(true);
                    return true;
                }
+               if (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+                   GLib.debug("SAVE: ctrl-f  pressed");
+                       _this.search_entry.el.grab_focus();
+                   return true;
+               }
                 
                // print(event.key.keyval)
                 
index ef61641..494783e 100644 (file)
              "\t\t_this.forwardSearch(true);",
              "\t    return true;",
              "\t}",
-             "    ",
+             "    if (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {",
+             "\t    GLib.debug(\"SAVE: ctrl-f  pressed\");",
+             "\t\t_this.search_entry.el.grab_focus();",
+             "\t    return true;",
+             "\t}",
              "\t ",
              "\treturn false;",
              "}\t ",
index 2cd2f70..cccf717 100644 (file)
@@ -688,7 +688,11 @@ public class Xcls_GtkView : Object
                        _this.forwardSearch(true);
                    return true;
                }
-                
+                if (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+                   GLib.debug("SAVE: ctrl-f  pressed");
+                       _this.search_entry.el.grab_focus();
+                   return true;
+               }
                 
                return false;
             });
index ac791d6..7ff79cc 100644 (file)
           "    \tpix = ic.load_icon(\"emblem-new\", 16,0);",
           "    }",
           "    ",
+          "    var fqn = node.fqn();",
+          "    var cn = _this.main_window.windowstate.project.palete.getChildList(fqn);",
+          "    ",
           "    this.el.set(",
           "    \t\titer, ",
           "    \t\t0, node.nodeTitle(),",
           "    );",
           "    this.el.set_value(iter, 2,o);",
           "    this.el.set_value(iter, 3,pix);    ",
-          "  \tthis.el.set_value(iter, 4,addi);   ",
+          "  \tthis.el.set_value(iter, 4, cn.length > 0 ? addi : null);   ",
           "    ",
           "",
           "}"
          "    }",
          "    ",
          "    if (col.title == \"Add\") {",
+         " \t\tGLib.Value value;",
+         " \t\tGtk.TreeIter iter;",
+         "",
+         "\t\t_this.model.el.get_iter (out  iter, res);",
+         "        _this.model.el.get_value(iter, 2, out value);\t\t",
+         "            // why dup_ - gets and and inc's ref count (which in theory should be freed at the end.?",
+         "            ",
+         "        var node = (JsRender.Node)value.dup_object();",
+         "        var fqn = node.fqn();",
+         "    \tvar cn = _this.main_window.windowstate.project.palete.getChildList(fqn);",
+         "  \t\tif (cn.length < 1) {",
+         "  \t\t\treturn true;",
+         "\t\t}",
+         "    ",
          "         _this.main_window.windowstate.leftTreeBeforeChange();",
          "         this.el.get_selection().select_path(res);",
          "     \t_this.main_window.windowstate.showAddObject(this.el);",
          "            _this.model.el.get_value(iter, 2, out value);",
          "            _this.model.activePath = mod.get_path(iter).to_string();",
          "            ",
+         "            // why dup_?",
+         "            ",
          "            var node = (JsRender.Node)value.dup_object();",
          "            print (\"calling left_tree.node_selected\\n\");",
          "            _this.node_selected(node, this.lastEventSource);",
index 0ce2648..f7f5b34 100644 (file)
@@ -228,6 +228,20 @@ public class Xcls_WindowLeftTree : Object
                 }
                 
                 if (col.title == "Add") {
+                       GLib.Value value;
+                       Gtk.TreeIter iter;
+            
+                       _this.model.el.get_iter (out  iter, res);
+                    _this.model.el.get_value(iter, 2, out value);              
+                        // why dup_ - gets and and inc's ref count (which in theory should be freed at the end.?
+                        
+                    var node = (JsRender.Node)value.dup_object();
+                    var fqn = node.fqn();
+                       var cn = _this.main_window.windowstate.project.palete.getChildList(fqn);
+                       if (cn.length < 1) {
+                               return true;
+                       }
+                
                      _this.main_window.windowstate.leftTreeBeforeChange();
                      this.el.get_selection().select_path(res);
                        _this.main_window.windowstate.showAddObject(this.el);
@@ -312,6 +326,8 @@ public class Xcls_WindowLeftTree : Object
                         _this.model.el.get_value(iter, 2, out value);
                         _this.model.activePath = mod.get_path(iter).to_string();
                         
+                        // why dup_?
+                        
                         var node = (JsRender.Node)value.dup_object();
                         print ("calling left_tree.node_selected\n");
                         _this.node_selected(node, this.lastEventSource);
@@ -1151,6 +1167,9 @@ typeof(Gdk.Pixbuf) }  );
                pix = ic.load_icon("emblem-new", 16,0);
             }
             
+            var fqn = node.fqn();
+            var cn = _this.main_window.windowstate.project.palete.getChildList(fqn);
+            
             this.el.set(
                        iter, 
                        0, node.nodeTitle(),
@@ -1159,7 +1178,7 @@ typeof(Gdk.Pixbuf) }  );
             );
             this.el.set_value(iter, 2,o);
             this.el.set_value(iter, 3,pix);    
-               this.el.set_value(iter, 4,addi);   
+               this.el.set_value(iter, 4, cn.length > 0 ? addi : null);   
             
         
         }
index cbb2a63..e02260d 100644 (file)
             "key_press_event" : [
              " (event) => {",
              "\t",
-             "\t if (event.keyval == Gdk.Key.g && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {",
+             "\tif (event.keyval == Gdk.Key.g && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {",
              "\t    GLib.debug(\"SAVE: ctrl-g  pressed\");",
              "\t\t_this.forwardSearch(true);",
              "\t    return true;",
              "\t}",
+             "\tif (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {",
+             "\t    GLib.debug(\"SAVE: ctrl-f  pressed\");",
+             "\t\t_this.search_entry.el.grab_focus();",
+             "\t    return true;",
+             "\t}",
              "    ",
              "\tthis.button_is_pressed = true;",
              "\treturn false;",
             "\t\tif (sel.getPropertyRange(this.prop_selected, out nstart, out nend) && nend > nstart) {",
             "\t\t\tstart_line = nstart;",
             "\t\t\tend_line = nend;",
-            "\t\t\tthis.el.editable = true;",
+            "\t\t\t// this.el.editable = true; << cant do this!!?",
             "\t\t\tprint(\"start line = %d, end line = %d\\n\", start_line, end_line);",
             "\t\t\t",
             "\t\t\t\t// see if we are 'right of ':'",
index 03e806a..1027b68 100644 (file)
@@ -1196,11 +1196,16 @@ public class Xcls_WindowRooView : Object
             });
             this.el.key_press_event.connect( (event) => {
                
-                if (event.keyval == Gdk.Key.g && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+               if (event.keyval == Gdk.Key.g && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
                    GLib.debug("SAVE: ctrl-g  pressed");
                        _this.forwardSearch(true);
                    return true;
                }
+               if (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+                   GLib.debug("SAVE: ctrl-f  pressed");
+                       _this.search_entry.el.grab_focus();
+                   return true;
+               }
                 
                this.button_is_pressed = true;
                return false;
@@ -1421,7 +1426,7 @@ public class Xcls_WindowRooView : Object
                        if (sel.getPropertyRange(this.prop_selected, out nstart, out nend) && nend > nstart) {
                                start_line = nstart;
                                end_line = nend;
-                               this.el.editable = true;
+                               // this.el.editable = true; << cant do this!!?
                                print("start line = %d, end line = %d\n", start_line, end_line);
                                
                                        // see if we are 'right of ':'
index 9016c84..adaf490 100644 (file)
             "../..//pixmaps",
             "../../..//gitlive",
             "..//codegen",
-            "..//ccode"
+            "..//ccode",
+            "../..//debian"
         ],
         "packages" : [
             "gdk-3.0",