From cc074bf6b4ec2282edc0a5fc46117b43564b95e4 Mon Sep 17 00:00:00 2001 From: Alan Date: Wed, 31 Aug 2022 16:08:59 +0800 Subject: [PATCH] Fix #7367 - only show add child on addable objects --- debian/autoreconf.after | 8 ++++---- debian/autoreconf.before | 6 +++--- debian/changelog | 2 +- src/Builder4/Editor.bjs | 5 +++++ src/Builder4/Editor.vala | 5 +++++ src/Builder4/GtkView.bjs | 6 +++++- src/Builder4/GtkView.vala | 6 +++++- src/Builder4/WindowLeftTree.bjs | 21 ++++++++++++++++++++- src/Builder4/WindowLeftTree.vala | 21 ++++++++++++++++++++- src/Builder4/WindowRooView.bjs | 9 +++++++-- src/Builder4/WindowRooView.vala | 9 +++++++-- src/Builder4/config1.builder | 3 ++- 12 files changed, 84 insertions(+), 17 deletions(-) diff --git a/debian/autoreconf.after b/debian/autoreconf.after index a10e6a0a2..7d005a2aa 100644 --- a/debian/autoreconf.after +++ b/debian/autoreconf.after @@ -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 diff --git a/debian/autoreconf.before b/debian/autoreconf.before index 28b4ef584..475cdc7e6 100644 --- a/debian/autoreconf.before +++ b/debian/autoreconf.before @@ -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 diff --git a/debian/changelog b/debian/changelog index e5e514842..b7a439eec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/src/Builder4/Editor.bjs b/src/Builder4/Editor.bjs index 8a457c131..07cc131b0 100644 --- a/src/Builder4/Editor.bjs +++ b/src/Builder4/Editor.bjs @@ -473,6 +473,11 @@ "\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)", " ", diff --git a/src/Builder4/Editor.vala b/src/Builder4/Editor.vala index 345ac2100..6d8401fae 100644 --- a/src/Builder4/Editor.vala +++ b/src/Builder4/Editor.vala @@ -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) diff --git a/src/Builder4/GtkView.bjs b/src/Builder4/GtkView.bjs index ef61641eb..494783e0d 100644 --- a/src/Builder4/GtkView.bjs +++ b/src/Builder4/GtkView.bjs @@ -199,7 +199,11 @@ "\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 ", diff --git a/src/Builder4/GtkView.vala b/src/Builder4/GtkView.vala index 2cd2f704d..cccf717d9 100644 --- a/src/Builder4/GtkView.vala +++ b/src/Builder4/GtkView.vala @@ -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; }); diff --git a/src/Builder4/WindowLeftTree.bjs b/src/Builder4/WindowLeftTree.bjs index ac791d6ea..7ff79cc1d 100644 --- a/src/Builder4/WindowLeftTree.bjs +++ b/src/Builder4/WindowLeftTree.bjs @@ -557,6 +557,9 @@ " \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(),", @@ -565,7 +568,7 @@ " );", " 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); ", " ", "", "}" @@ -810,6 +813,20 @@ " }", " ", " 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);", @@ -902,6 +919,8 @@ " _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);", diff --git a/src/Builder4/WindowLeftTree.vala b/src/Builder4/WindowLeftTree.vala index 0ce264893..f7f5b3498 100644 --- a/src/Builder4/WindowLeftTree.vala +++ b/src/Builder4/WindowLeftTree.vala @@ -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); } diff --git a/src/Builder4/WindowRooView.bjs b/src/Builder4/WindowRooView.bjs index cbb2a636b..e02260d42 100644 --- a/src/Builder4/WindowRooView.bjs +++ b/src/Builder4/WindowRooView.bjs @@ -842,11 +842,16 @@ "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;", @@ -1121,7 +1126,7 @@ "\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 ':'", diff --git a/src/Builder4/WindowRooView.vala b/src/Builder4/WindowRooView.vala index 03e806a37..1027b68a3 100644 --- a/src/Builder4/WindowRooView.vala +++ b/src/Builder4/WindowRooView.vala @@ -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 ':' diff --git a/src/Builder4/config1.builder b/src/Builder4/config1.builder index 9016c846b..adaf4907e 100644 --- a/src/Builder4/config1.builder +++ b/src/Builder4/config1.builder @@ -180,7 +180,8 @@ "../..//pixmaps", "../../..//gitlive", "..//codegen", - "..//ccode" + "..//ccode", + "../..//debian" ], "packages" : [ "gdk-3.0", -- 2.39.2