From 6e589e3491f5cac5709988adcc23d2affaad5f9a Mon Sep 17 00:00:00 2001 From: "duzc2dtw@gmail.com" Date: Tue, 11 Sep 2018 00:44:27 +0800 Subject: [PATCH 1/3] fix bug. when create get/set dynamic variable block from set/get , lost the type. --- blocks/variables_dynamic.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/blocks/variables_dynamic.js b/blocks/variables_dynamic.js index 667cd5be7..36027ba6b 100644 --- a/blocks/variables_dynamic.js +++ b/blocks/variables_dynamic.js @@ -102,11 +102,14 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI } var opposite_type; var contextMenuMsg; + var varType; if (this.type == 'variables_get_dynamic') { opposite_type = 'variables_set_dynamic'; + varType = this.outputConnection.check_ ? this.outputConnection.check_[0] : ""; contextMenuMsg = Blockly.Msg['VARIABLES_GET_CREATE_SET']; } else { opposite_type = 'variables_get_dynamic'; + varType = this.inputList[0].connection.check_ ? this.inputList[0].connection.check_[0] : ""; contextMenuMsg = Blockly.Msg['VARIABLES_SET_CREATE_GET']; } @@ -115,6 +118,7 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI option.text = contextMenuMsg.replace('%1', name); var xmlField = document.createElement('field'); xmlField.setAttribute('name', 'VAR'); + xmlField.setAttribute('variabletype', varType); xmlField.appendChild(document.createTextNode(name)); var xmlBlock = document.createElement('block'); xmlBlock.setAttribute('type', opposite_type); From 0dfc93f72d70ce367e981f511c89aa45b85ed2b9 Mon Sep 17 00:00:00 2001 From: "duzc2dtw@gmail.com" Date: Wed, 12 Sep 2018 11:19:17 +0800 Subject: [PATCH 2/3] get the variable from the field and use its type. --- blocks/variables_dynamic.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blocks/variables_dynamic.js b/blocks/variables_dynamic.js index 36027ba6b..abc997a62 100644 --- a/blocks/variables_dynamic.js +++ b/blocks/variables_dynamic.js @@ -102,14 +102,14 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI } var opposite_type; var contextMenuMsg; - var varType; + var id = this.getFieldValue('VAR'); + var variableModel = this.workspace.getVariableById(id); + var varType = variableModel.type if (this.type == 'variables_get_dynamic') { opposite_type = 'variables_set_dynamic'; - varType = this.outputConnection.check_ ? this.outputConnection.check_[0] : ""; contextMenuMsg = Blockly.Msg['VARIABLES_GET_CREATE_SET']; } else { opposite_type = 'variables_get_dynamic'; - varType = this.inputList[0].connection.check_ ? this.inputList[0].connection.check_[0] : ""; contextMenuMsg = Blockly.Msg['VARIABLES_SET_CREATE_GET']; } From 0ea48789587582f6c9fb991e40b452da3c691ce3 Mon Sep 17 00:00:00 2001 From: "duzc2dtw@gmail.com" Date: Thu, 13 Sep 2018 01:35:10 +0800 Subject: [PATCH 3/3] fix Missing semicolonsemi --- blocks/variables_dynamic.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/variables_dynamic.js b/blocks/variables_dynamic.js index abc997a62..5aaa0aab0 100644 --- a/blocks/variables_dynamic.js +++ b/blocks/variables_dynamic.js @@ -104,7 +104,7 @@ Blockly.Constants.VariablesDynamic.CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MI var contextMenuMsg; var id = this.getFieldValue('VAR'); var variableModel = this.workspace.getVariableById(id); - var varType = variableModel.type + var varType = variableModel.type; if (this.type == 'variables_get_dynamic') { opposite_type = 'variables_set_dynamic'; contextMenuMsg = Blockly.Msg['VARIABLES_GET_CREATE_SET'];