Skip to content

Commit

Permalink
Variable fixes (#2240)
Browse files Browse the repository at this point in the history
* Fix variable String assignment

* Add logic to prevent "Variable renamed" warning on new variables
  • Loading branch information
Jowan-Spooner committed May 19, 2024
1 parent f4aa44e commit 8f4de8a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
2 changes: 1 addition & 1 deletion addons/dialogic/Modules/Variable/event_variable.gd
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func _execute() -> void:
if value != null and (original_value != null or (operation == Operations.SET and "[" in name)):

var interpreted_value: Variant
var result: float
var result: Variant

match _value_type:
VarValueType.STRING:
Expand Down
27 changes: 21 additions & 6 deletions addons/dialogic/Modules/Variable/variables_editor/variable_tree.gd
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func _ready() -> void:

#region POPULATING THE TREE

func load_info(dict:Dictionary, parent:TreeItem = null) -> void:
func load_info(dict:Dictionary, parent:TreeItem = null, is_new:=false) -> void:
if parent == null:
clear()
parent = add_folder_item("VAR", null)
Expand All @@ -38,12 +38,16 @@ func load_info(dict:Dictionary, parent:TreeItem = null) -> void:
sorted_keys.sort()
for key in sorted_keys:
if typeof(dict[key]) != TYPE_DICTIONARY:
add_variable_item(key, dict[key], parent)
var item := add_variable_item(key, dict[key], parent)
if is_new:
item.set_meta("new", true)

for key in sorted_keys:
if typeof(dict[key]) == TYPE_DICTIONARY:
var folder := add_folder_item(key, parent)
load_info(dict[key], folder)
if is_new:
folder.set_meta("new", true)
load_info(dict[key], folder, is_new)



Expand Down Expand Up @@ -117,17 +121,21 @@ func get_variable_item_default(item:TreeItem) -> Variant:
func _on_button_clicked(item: TreeItem, column: int, id: int, mouse_button_index: int) -> void:
match id:
TreeButtons.ADD_FOLDER:
add_folder_item("Folder", item).select(0)
var new_item := add_folder_item("Folder", item)
new_item.select(0)
new_item.set_meta("new", true)
await get_tree().process_frame
edit_selected()
TreeButtons.ADD_VARIABLE:
add_variable_item("Var", "", item).select(0)
var new_item := add_variable_item("Var", "", item)
new_item.select(0)
new_item.set_meta("new", true)
await get_tree().process_frame
edit_selected()
TreeButtons.DELETE:
item.free()
TreeButtons.DUPLICATE_FOLDER:
load_info({item.get_text(0)+"(copy)":get_info(item)}, item.get_parent())
load_info({item.get_text(0)+"(copy)":get_info(item)}, item.get_parent(), true)
TreeButtons.CHANGE_TYPE:
%ChangeTypePopup.show()
%ChangeTypePopup.set_meta('item', item)
Expand Down Expand Up @@ -276,9 +284,13 @@ func _drop_data(position:Vector2, item:Variant) -> void:
"VARIABLE":
new_item = add_variable_item(item.get_text(0), item.get_metadata(2), parent)
new_item.set_meta('prev_path', get_item_path(item))
if item.get_meta("new", false):
new_item.set_meta("new", true)
"FOLDER":
new_item = add_folder_item(item.get_text(0), parent)
load_info(get_info(item), new_item)
if item.get_meta("new", false):
new_item.set_meta("new", true)

# If this was dropped on a variable (or the root node)
if to_item != parent:
Expand All @@ -298,8 +310,11 @@ func _drop_data(position:Vector2, item:Variant) -> void:
################################################################################

func report_name_changes(item:TreeItem) -> void:

match item.get_meta('type'):
"VARIABLE":
if item.get_meta("new", false):
return
var new_path := get_item_path(item)
editor.variable_renamed(item.get_meta('prev_path'), new_path)
item.set_meta('prev_path', new_path)
Expand Down

0 comments on commit 8f4de8a

Please sign in to comment.