Skip to content

Commit 7d3cea1

Browse files
authored
Merge pull request #142 from endlessm/improve-lineedit-input
Parameter input: change text modification logic
2 parents 3cf47d0 + 9f3f1a7 commit 7d3cea1

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.gd

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ var option: bool = false
3131
@onready var _bool_input := %BoolInput
3232
@onready var _bool_input_option := %BoolInputOption
3333

34+
# Used to submit the text when losing focus:
35+
var _last_lineedit_submitted_text: String
36+
var _last_x_lineedit_submitted_text: String
37+
var _last_y_lineedit_submitted_text: String
38+
3439

3540
func set_raw_input(raw_input):
3641
if option:
@@ -93,6 +98,10 @@ func _ready():
9398
snap_point.block_type = block_type
9499
snap_point.variant_type = variant_type
95100

101+
_last_lineedit_submitted_text = _line_edit.text
102+
_last_x_lineedit_submitted_text = _x_line_edit.text
103+
_last_y_lineedit_submitted_text = _y_line_edit.text
104+
96105
_update_visible_input()
97106

98107

@@ -126,10 +135,36 @@ func get_string() -> String:
126135
return "%s" % input
127136

128137

129-
func _on_line_edit_text_changed(new_text):
138+
func _on_line_edit_text_submitted(new_text):
139+
_last_lineedit_submitted_text = new_text
140+
modified.emit()
141+
142+
143+
func _on_line_edit_focus_exited():
144+
if _last_lineedit_submitted_text != _line_edit.text:
145+
modified.emit()
146+
147+
148+
func _on_x_line_edit_text_submitted(new_text):
149+
_last_x_lineedit_submitted_text = new_text
130150
modified.emit()
131151

132152

153+
func _on_x_line_edit_focus_exited():
154+
if _last_x_lineedit_submitted_text != _x_line_edit.text:
155+
modified.emit()
156+
157+
158+
func _on_y_line_edit_text_submitted(new_text):
159+
_last_y_lineedit_submitted_text = new_text
160+
modified.emit()
161+
162+
163+
func _on_y_line_edit_focus_exited():
164+
if _last_y_lineedit_submitted_text != _y_line_edit.text:
165+
modified.emit()
166+
167+
133168
func _update_visible_input():
134169
if snap_point.has_snapped_block():
135170
_switch_input(null)

addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.tscn

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,16 @@ popup/item_1/id = 1
178178
[node name="SnapPoint" parent="." instance=ExtResource("2_6esp3")]
179179
unique_name_in_owner = true
180180
layout_mode = 2
181-
mouse_filter = 2
182181
block_type = 3
183182
variant_type = 4
184183

185-
[connection signal="text_changed" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_text_changed"]
184+
[connection signal="focus_exited" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_focus_exited"]
185+
[connection signal="text_submitted" from="InputSwitcher/TextInput/LineEdit" to="." method="_on_line_edit_text_submitted"]
186186
[connection signal="color_changed" from="InputSwitcher/ColorInput" to="." method="_on_color_input_color_changed"]
187187
[connection signal="item_selected" from="InputSwitcher/OptionInput" to="." method="_on_option_input_item_selected"]
188-
[connection signal="text_changed" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_line_edit_text_changed"]
189-
[connection signal="text_changed" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_line_edit_text_changed"]
188+
[connection signal="focus_exited" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_x_line_edit_focus_exited"]
189+
[connection signal="text_submitted" from="InputSwitcher/Vector2Input/HBoxContainer/XLineEdit" to="." method="_on_x_line_edit_text_submitted"]
190+
[connection signal="focus_exited" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_y_line_edit_focus_exited"]
191+
[connection signal="text_submitted" from="InputSwitcher/Vector2Input/HBoxContainer/YLineEdit" to="." method="_on_y_line_edit_text_submitted"]
190192
[connection signal="item_selected" from="InputSwitcher/BoolInput/BoolInputOption" to="." method="_on_option_input_item_selected"]
191193
[connection signal="snapped_block_changed" from="SnapPoint" to="." method="_on_snap_point_snapped_block_changed"]

0 commit comments

Comments
 (0)